高效處理多個並發異步操作
此示例演示如何管理三個獨立的異步操作 - FeedCat()
、SellHouse()
和 BuyCar()
- 每個操作返回一個不同的對象(分別為 Cat、House、Tesla)。 該代碼要求在繼續之前完成所有操作,並且需要訪問每個操作的結果。
最佳解決方案利用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中文網其他相關文章!