通过创建一个或多个 awaiters 和 awaitables,是否可以在 C# 中构建协程?
理想情况下,我希望能够编写如下内容:
void async Click() {
var mouse_position = await left_mouse_click();
await shoot_projectile();
}
然后从 Click 方法中获取一些东西,我可以在另一个异步方法中等待,或者我可以使用某些 MoveNext/GetResult 方法显式迭代。
最终目标是我需要将 C# async/await 与 F# monadic coroutines 集成为游戏开发框架 ( http://casanova.codeplex.com )。