首頁 >後端開發 >C++ >如何有效率地執行多個不同返回類型的非同步任務並檢索結果?

如何有效率地執行多個不同返回類型的非同步任務並檢索結果?

Linda Hamilton
Linda Hamilton原創
2025-01-28 03:26:08506瀏覽

How Can I Efficiently Execute and Retrieve Results from Multiple Asynchronous Tasks with Different Return Types?

>管理與多種返回類型的並發異步操作 這個示例演示瞭如何同時執行多個異步任務,每個任務都返回不同的結果類型,並有效地檢索了這些結果。 想像一下三個異步功能:

我們將使用
<code class="language-csharp">public class AsyncOperations {

    private async Task<Cat> FeedCatAsync() { ... }
    private async Task<House> SellHouseAsync() { ... }
    private async Task<Tesla> BuyCarAsync() { ... }

}</code>
同時運行這些並收集結果。

> Task.WhenAll

<code class="language-csharp">// Instantiate the class containing asynchronous methods
var operations = new AsyncOperations();

// Initiate the tasks
var catTask = operations.FeedCatAsync();
var houseTask = operations.SellHouseAsync();
var carTask = operations.BuyCarAsync();

// Execute concurrently and wait for completion
await Task.WhenAll(catTask, houseTask, carTask);

// Retrieve results
var cat = await catTask;
var house = await houseTask;
var car = await carTask;

// Process the results...</code>
確保在繼續前完成所有任務。

>關鍵字對於正確處理異步操作至關重要;它可以在等待結果時阻止主線程。 Task.WhenAll提供了檢索結果的替代方法,但由於潛在的阻塞問題,通常不太喜歡它。 這種方法提供了一種干淨有效的方法來管理具有不同返回值的並發異步任務。 await

以上是如何有效率地執行多個不同返回類型的非同步任務並檢索結果?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn