首页 > 后端开发 > C++ > 我如何有效地等待具有多种结果类型的多个异步任务?

我如何有效地等待具有多种结果类型的多个异步任务?

Susan Sarandon
发布: 2025-01-28 03:16:08
原创
150 人浏览过

>有效处理具有多种返回类型的多个异步任务

在异步编程中,经常需要几个同时运行任务的结果,每个任务都可能返回其他数据类型。 让我们用三个示例任务说明:

  • > feedcat():返回a对象。 Cat
  • > sellhouse():
  • >返回a对象。 House
  • > buycar():
  • 返回a对象。 Tesla
  • >在继续之前,我们需要所有结果。虽然可以执行顺序执行,但并发执行效率要高得多。 挑战在于处理各种结果类型。

解决方案:利用

和个人等待

Task.WhenAll解决方案涉及

,它等待所有提供的任务完成。 完成后,使用

检索单个结果:Task.WhenAll await

<code class="language-csharp">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;</code>
登录后复制
创建一个父任务,该任务仅在完成所有子任务(

Task.WhenAllcatTask)时完成。 随后,等待每个孩子任务单独检索其特定结果。> houseTaskcarTask

以上是我如何有效地等待具有多种结果类型的多个异步任务?的详细内容。更多信息请关注PHP中文网其他相关文章!

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