複数の同時非同期操作を効率的に処理する
この例では、それぞれ別のオブジェクト (それぞれ Cat、House、Tesla) を返す 3 つの独立した非同期操作 (FeedCat()
、SellHouse()
、BuyCar()
) を管理する方法を示します。 このコードでは、続行する前にすべての操作が完了する必要があり、それぞれの結果にアクセスする必要があります。
最適なソリューションは、並列実行と待機に Task.WhenAll()
を活用します。
<code class="language-csharp">var catTask = FeedCat(); var houseTask = SellHouse(); var carTask = BuyCar(); await Task.WhenAll(catTask, houseTask, carTask);</code>
Task.WhenAll()
が完了を確認した後、個々の結果に簡単にアクセスできます:
<code class="language-csharp">var cat = await catTask; var house = await houseTask; var car = await carTask;</code>
非同期関数は「ホット」タスク (すでに開始されている) を返すことに注意することが重要です。 Task.Result
はオプションですが (完了が保証されているため)、読みやすさとエラー処理の向上という点で、一般的には await
を使用することが推奨されます。
以上が複数の非同期タスクを同時に待機し、その結果にアクセスするにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。