これらのコールは同様に動作しますか。同様に、async-awaitが実行されているのと同じ方法で動作しますが、同じ元のスレッドコンテキストで実行することはできますか?あるいは、最初のものは、実行が別のスレッドコンテキストで行われることを保証しますか?次の非同期待機コールの違いを理解する
最初の方法 -
Task task = SomeAsyncTask();
await task();
第二の方法 -
await SomeAsyncTask();
これらのコールは同様に動作しますか。同様に、async-awaitが実行されているのと同じ方法で動作しますが、同じ元のスレッドコンテキストで実行することはできますか?あるいは、最初のものは、実行が別のスレッドコンテキストで行われることを保証しますか?次の非同期待機コールの違いを理解する
最初の方法 -
Task task = SomeAsyncTask();
await task();
第二の方法 -
await SomeAsyncTask();
Task task = SomeAsyncTask();
とawait task();
間のコードがある場合は、あなたのタスクは、非同期コードの実行を開始し、現在のスレッドがでそのコードを実行します同時。
そうでなければ、彼らは
Task task = SomeAsyncTask();
//Codes executed on current thread while SomeAsyncTask is running
await task();
All asynchronous methods start synchronously ...等しいです。
です:
await SomeAsyncTask();
は全く同じである。いずれの場合も
var task = SomeAsyncTask();
await task;
それはどちらか、完全であるか、それが返した時点で非同期await
を、当たるまで、SomeAsyncTask
が実行されます仕事。そのタスクは、呼び出しメソッドによってawait
になります。