>管理與多種返回類型的並發異步操作 這個示例演示瞭如何同時執行多個異步任務,每個任務都返回不同的結果類型,並有效地檢索了這些結果。 想像一下三個異步功能:
我們將使用
public class AsyncOperations { private async Task<Cat> FeedCatAsync() { ... } private async Task<House> SellHouseAsync() { ... } private async Task<Tesla> BuyCarAsync() { ... } }
>
Task.WhenAll
// 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...
>關鍵字對於正確處理異步操作至關重要;它可以在等待結果時阻止主線程。 Task.WhenAll
提供了檢索結果的替代方法,但由於潛在的阻塞問題,通常不太喜歡它。 這種方法提供了一種干淨有效的方法來管理具有不同返回值的並發異步任務。 await
以上是如何有效率地執行多個不同返回類型的非同步任務並檢索結果?的詳細內容。更多資訊請關注PHP中文網其他相關文章!