私はC#5の新しいasync
/await
キーワードにまったく慣れておらず、進行状況イベントを実装するための最良の方法に興味があります。
今、私はProgress
イベントTask<>
自体があった場合にそれを好むでしょう。非同期メソッドを含むクラスにイベントを配置し、イベントハンドラーである種の状態オブジェクトを渡すことができることはわかっていますが、それは解決策というよりも回避策のように思えます。また、さまざまなタスクでさまざまなオブジェクトのイベントハンドラーを起動したい場合もありますが、これはこのように厄介に聞こえます。
次のようなことをする方法はありますか?:
var task = scanner.PerformScanAsync();
task.ProgressUpdate += scanner_ProgressUpdate;
return await task;