首頁 > 後端開發 > C++ > 如何在 C# 中有效率地等待和檢索多個並發任務的結果?

如何在 C# 中有效率地等待和檢索多個並發任務的結果?

DDD
發布: 2025-01-28 03:06:14
原創
880 人瀏覽過

How Can I Efficiently Await and Retrieve Results from Multiple Concurrent Tasks in C#?

在 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中文網其他相關文章!

本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板