C# での同時タスクの管理と結果の取得
C# プログラミングでよくある課題には、同時に実行して個別の結果を返す必要がある複数の非同期タスクの処理が含まれます。 この記事では、Task.WhenAll
.
これがシナリオです: 猫に餌をやる、家を売る、車を買うという 3 つの独立したタスクを想像してください。各タスクは非同期であり、固有の結果が生成されます。
<code class="language-csharp">private async Task<Cat> FeedCat() { /* ... */ } private async Task<House> SellHouse() { /* ... */ } private async Task<Tesla> BuyCar() { /* ... */ } async Task Main() { var catTask = FeedCat(); var houseTask = SellHouse(); var carTask = BuyCar(); await Task.WhenAll(catTask, houseTask, carTask); var cat = await catTask; var house = await houseTask; var car = await carTask; }</code>
Task.WhenAll
メソッドは、3 つのタスクすべてを同時に開始します。 WhenAll
が完了すると (すべてのタスクが終了したことを通知します)、個別の await
操作を使用して各タスクの結果を安全に取得できます。 非同期メソッドは、すでに開始されたタスクを暗黙的に返します。
タスクの完了が保証されているため、Task.Result
の後に WhenAll
を使用することも可能ですが、より複雑なシナリオでは可読性と堅牢性が向上するため、一般に await
アプローチが推奨されます。
以上がC#の複数の同時タスクから結果を効率的に待って取得するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。