Task.Start/Wait と Async/Await: 違いは何ですか?
非同期プログラミングの世界では、Task.Start/Wait を使用する同期メソッドと Async/Await を使用する非同期メソッドの違いを理解することが重要です。
次のコード スニペットをご覧ください:
<code class="language-csharp">public void MyMethod() { Task t = Task.Factory.StartNew(DoSomethingThatTakesTime); t.Wait(); UpdateLabelToSayItsComplete(); } public async void MyMethod() { var result = Task.Factory.StartNew(DoSomethingThatTakesTime); await result; UpdateLabelToSayItsComplete(); }</code>
最初のコード スニペットでは、従来の Task.Start/Wait 同期メソッドを使用します。仕組みは次のとおりです:
対照的に、2 番目のコード スニペットは、Async/Await を使用した非同期アプローチを示しています。
これら 2 つのメソッドの主な違いは、タスクの実行中のスレッドの動作です。 Task.Start/Wait を使用すると、スレッドがブロックされ、他のイベントに応答できなくなります。対照的に、Async/Await を使用すると、スレッドは応答を待機している間に他のタスクを実行できます。
レストランでランチを注文するところを想像してみてください。食事の前に隣に座っている人を無視するように Task.Start/Wait を使用します。 Async/Await を使用すると、スープが提供されるのを待っている間、友人と会話を続けるようなものです。バックグラウンド作業はまだ行われていますが、スレッドは結果を待っている間に他の操作を実行できます。
以上がTask.Start/Wait と Async/Await: 非同期プログラミングの主な違いは何ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。