gpt4 book ai didi

C# 异步,没有任务等待

转载 作者:可可西里 更新时间:2023-11-01 08:46:46 26 4
gpt4 key购买 nike

通过创建一个或多个 awaiters 和 awaitables,是否可以在 C# 中构建协程?

理想情况下,我希望能够编写如下内容:

void async Click() {
var mouse_position = await left_mouse_click();
await shoot_projectile();
}

然后从 Click 方法获取一些东西,我可以在另一个异步方法中等待,或者我可以使用某些 MoveNext/GetResult 方法显式迭代。

最终目标是我需要将 C# async/await 与 F# monadic 协程集成到游戏开发框架 (http://casanova.codeplex.com)。

最佳答案

By creating one or more awaiters and awaitables, is it possible to build coroutines in C#?

当然!我有一个 blog post它使用 TaskScheduler 构建简单的协程,Jon Skeet 有一个 blog post使用自定义 awaitables 来构建简单的协程。

但是看看您其余的问题和评论,我不确定协程是否是您真正想要的。如果您想“迭代”可等待对象,最好的选择是 Reactive Extensions (与 async 互操作良好)。 “异步 yield ”没有 C# 语言功能。

关于C# 异步,没有任务等待,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15458549/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com