#immediate-mode #async #promise #gamedev #poll #gui

poll-promise

在游戏或即时模式GUI中对异步操作的结果进行轮询

3个版本 (重大更新)

0.3.0 2023年8月27日
0.2.1 2023年9月29日
0.2.0 2022年10月24日
0.1.0 2022年1月10日

#93 in 异步

Download history 4624/week @ 2024-03-14 6078/week @ 2024-03-21 7012/week @ 2024-03-28 3136/week @ 2024-04-04 4937/week @ 2024-04-11 6179/week @ 2024-04-18 6140/week @ 2024-04-25 3839/week @ 2024-05-02 4144/week @ 2024-05-09 5416/week @ 2024-05-16 6467/week @ 2024-05-23 6374/week @ 2024-05-30 4550/week @ 2024-06-06 4920/week @ 2024-06-13 4879/week @ 2024-06-20 6506/week @ 2024-06-27

22,278 每月下载量
用于 10 个Crate(7个直接使用)

MIT/Apache

37KB
539

poll-promise

用于游戏和即时模式GUI的Rust promise

Embark Embark Crates.io Docs dependency status Build status

描述

poll-promise 是一个Rust crate,用于轮询并发(例如 async)操作的结果。这在游戏和即时模式GUI中特别有用,在这些环境中,人们通常希望在启动后台操作后,在每个后续帧上询问“我们到了吗?”直到操作完成。

示例

let promise = poll_promise::Promise::spawn_thread("slow_operation", something_slow);

// Then in the game loop or immediate mode GUI code:
if let Some(result) = promise.ready() {
    // Use/show result
} else {
    // Show a loading icon
}

如果您启用了 tokio 功能,您可以使用 poll-promisetokio 运行时一起使用。

注意事项

该crate主要用于作为应用中的高级构建块。

该crate提供了启动线程和tokio任务以及等待结果时阻塞的方法。在库中这样做通常是一个坏主意,因为关于执行环境和线程阻塞的决定应该留给应用。因此,我们不推荐在当前状态下将此crate用于库。

另请参阅

以下功能提供了类似的功能

贡献

Contributor Covenant

我们欢迎社区对这个项目做出贡献。

请阅读我们的 贡献指南 了解如何开始。在您做出任何贡献之前,请阅读我们的 贡献条款

任何有意提交以包含在Embark Studios项目中的贡献,必须符合Rust标准许可模式(MIT OR Apache 2.0),因此将按以下方式双许可,不附加任何额外条款或条件

许可

此贡献根据以下之一双许可

由您选择。

为了明确,“您”指的是Embark或任何其他贡献的许可方/用户。

依赖项

~0.2–12MB
~133K SLoC