在 C# 中管理並發任務並檢索結果
C# 程式設計中的一個常見挑戰涉及處理需要同時執行並傳回單獨結果的多個非同步任務。 本文示範了一種使用 Task.WhenAll
.
這是一個場景:想像三個獨立的任務:餵貓、賣房子、買車。每個任務都是非同步的並產生唯一的結果。
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; }
Task.WhenAll
方法同時啟動所有三個任務。 WhenAll
完成後(表示所有任務已完成),您可以使用單獨的 await
操作安全地檢索每個任務的結果。 非同步方法隱式傳回已啟動的任務。
雖然可以在 Task.Result
之後使用 WhenAll
,但由於可以保證任務完成,因此通常建議使用 await
方法,因為它可以在更複雜的場景中提高可讀性和穩健性。
以上是如何在 C# 中有效率地等待和檢索多個並發任務的結果?的詳細內容。更多資訊請關注PHP中文網其他相關文章!