7

他の場所で述べたように、新しい .NET async/await モデルは、ウイルスのようにソフトウェアのレイヤーを介して伝播します。public void DoStuff()最近の非同期変更がビュー モデルに反映されました。変更宣言が安全public async Task DoStuff()かどうか疑問に思っています。

ありがとう!

4

4 に答える 4

18

Caliburn.Micro での非同期プログラミング モデルのサポートは、現在かなり優れています。

あなたができることはほとんどありません:

  • アクション メソッドで async/await を使用します。async voidアクション メソッドは技術的にはイベント ハンドラーであるため、注意してくださいasync Task
  • Activated、ViewLoaded などのScreen のイベントの非同期イベント ハンドラー。
  • Screen のメソッドの非同期オーバーライド: OnInitialize、OnActivate、... その後オーバーライドできprotected override async void OnInitialize(){}、内部で別のタスクを待機できます。
  • コルーチンをタスクに変換しますExecuteAsync()拡張メソッドを使用します。コルーチンには、実行コンテキストなど、いくつかのシナリオでまだいくつかの利点があります。
  • IHandleWithTask<TMessage>-かなり便利...

いくつかのコード スニペットを使用したユース ケースについて説明しているブログ投稿があります。そして、Caliburn で async/await を使用するために使用したサンプル プロジェクトを含む GitHub リポジトリ。

于 2013-07-16T09:05:05.667 に答える
2

答えは「はい」で、Caliburn.Micro1.5から始まります。

リリースアナウンスを参照してください。

于 2013-03-20T15:35:26.193 に答える
1

Caliburn.Micro プロジェクトのプロジェクト マネージャーであるMarco Amendolaは、次のタイトルの記事を書きました:コルーチンは死んでいます。コルーチン万歳。そして彼は、async/wait プログラミング モデルの出現により、このようにタイトルを付けました。この記事を読めば、async/wait が過去にコルーチンで行っていたことを実現していることがわかります。以前はコルーチンを使用していました。記事を読むことをお勧めします。

于 2013-03-14T22:49:54.817 に答える