2

Task他のアクションを実行する前に完了させたい。私が使用する場合

Task.WaitAll(task);

それは確かに私のUIスレッドをブロックします。Taskを使用せずに a が完了するのを非同期的に待機する最良の方法は何ですかasync / await(私は .NET v4.0 を使用しています)?

4

1 に答える 1

7

async / awaitをプロジェクトに追加すると、.NET 4.0 でも使用できMicrosoft.Bcl.Async NuGet packageます。これ以外に、選択肢はあまりありません。非同期呼び出しを使用するか、既に述べた方法でスレッドをブロックします。

awaitただし、非同期メソッドを使用する場合はそれに縛られません。コールバックを使用することもできます:

task.ContinueWith(r => {
    /* code */
});
于 2013-10-01T12:38:13.120 に答える