同時非同期操作の管理と確実な完了
このガイドでは、コンソール アプリケーション内で複数の非同期タスクを同時に実行し、それらが正常に完了したことを確認するための効果的な戦略を示します。
方法 1: Task.WhenAll
一部の既存のリソースとは異なり、Task.WhenAll
は、複数の非同期操作を同時に実行し、すべての操作が完了するのを待つための簡単なソリューションを提供します。 これがイラストです:
<code class="language-csharp">var task1 = PerformTaskAsync(); var task2 = PerformAnotherTaskAsync(); await Task.WhenAll(task1, task2);</code>
Task.WhenAll
は、すべての入力タスク (この例では task1
と task2
) が完了した場合にのみ完了する待機可能タスクを返します。 これにより、後続のコードはすべての非同期操作が終了した後にのみ実行されるようになります。
Task.WaitAll
と Task.WhenAll
Task.WaitAll
と Task.WhenAll
はどちらもタスクの完了を待ちますが、大きく異なります。 Task.WaitAll
は現在のスレッドをブロックしますが、Task.WhenAll
は非ブロックです。 例外処理も異なります。Task.WaitAll
は例外を 1 つの AggregateException
に集約しますが、Task.WhenAll
は集約された例外を含む Faulted
タスクを生成します。
堅牢なエラー処理
Task.WaitAll
は、タスクが失敗するかキャンセルされた場合に AggregateException
をスローします。 Task.WhenAll
は、タスクが失敗した場合は Faulted
タスクを返し、タスクが失敗せずにキャンセルされた場合は Canceled
タスクを返します。 潜在的なエラーを適切に管理するには、適切な例外処理が不可欠です。
以上がコンソールアプリケーションで複数の非同期タスクを効率的に実行して待つにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。