awaitersとawaitablesを1つ以上作成すると、C#でコルーチンを構築できますか?C#async、タスクなしでお待ちください
理想的には私のようなもの書くことができるようにしたいと思います:
void async Click() {
var mouse_position = await left_mouse_click();
await shoot_projectile();
}
をして、Clickメソッドから、私は別の非同期メソッドの内部または私は明示的に/いくつかのMoveNextメソッドを反復処理できることをどちらか待つことができる何かを取得しますGetResultメソッド。
最終目標は、ゲーム開発フレームワーク(http://casanova.codeplex.com)のために、C#async/awaitとF#モナドコルーチンを統合する必要があることです。
はい、そのように見えます。私はちょうど非同期内部で降伏できるようにする必要があり、結果として得られるすべての歩留まりを外部ループから踏み出す必要がありますが、これを行う方法に関する情報は見つかりませんでした。 –
'Task'sはそのために設計されていません。 Rxチームは、あなたが記述している動作(古いChannel9ビデオがあります)を持つ 'IAsyncEnumerator'の作業を開始しましたが、そのアプローチは決して適切なアプローチではないため放棄されました。代わりに正規のRxを使用することをお勧めします。 –
継続性のグローバルリストに継続を追加することで、私は自分自身を待っているカスタムの中で自分自身を巻き戻すことができ、私は必要なものをエミュレートすることができます。私は空の非同期メソッドが必要な場合でも、タスクを返すように強制されています。 –