首页 > 后端开发 > C++ > 我如何有效地等待和检索C#中多个并发任务的结果?

我如何有效地等待和检索C#中多个并发任务的结果?

DDD
发布: 2025-01-28 03:06:14
原创
882 人浏览过

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>时,由于保证了任务完成,因此通常建议使用更复杂的方案的可读性和鲁棒性。

以上是我如何有效地等待和检索C#中多个并发任务的结果?的详细内容。更多信息请关注PHP中文网其他相关文章!

本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板