首页 > 后端开发 > C++ > 如何在 .NET 4.5 中同时运行两个异步任务并获取其结果?

如何在 .NET 4.5 中同时运行两个异步任务并获取其结果?

Linda Hamilton
发布: 2025-01-13 07:34:42
原创
490 人浏览过

How Can I Run Two Async Tasks Concurrently and Get Their Results in .NET 4.5?

在 .NET 4.5 中高效执行并发异步任务并检索结果

本指南演示了一种在 .NET 4.5 框架内同时运行两个异步任务并有效收集各自结果的简化方法。 以前使用 Task.Run()Thread.Sleep() 的方法对于异步操作来说不太理想。

这是一个改进的解决方案:

<code class="language-csharp">async Task<int> LongTask1()
{
    // Simulate a long-running operation
    await Task.Delay(1000); // Replace with your actual asynchronous task
    return 0;
}

async Task<int> LongTask2()
{
    // Simulate a long-running operation
    await Task.Delay(1500); // Replace with your actual asynchronous task
    return 1;
}

// ... within your main method ...
{
    Task<int> task1 = LongTask1();
    Task<int> task2 = LongTask2();

    await Task.WhenAll(task1, task2);

    // Access results after both tasks have completed
    int result1 = task1.Result;
    int result2 = task2.Result;
    // ... process result1 and result2 ...
}</code>
登录后复制

这段精炼的代码利用了async/await的力量:

  • LongTask1LongTask2 是代表长时间运行操作的异步方法。 请记住将 Task.Delay() 替换为您实际的异步逻辑。
  • Task.WhenAll(task1, task2) 确保两项任务在继续之前完成,有效同步结果。
  • task1.Resulttask2.Result 提供对每个任务执行完成后的返回值的访问。

与以前的方法相比,这种方法提供了更干净、更高效、真正异步的解决方案,消除了对 Task.Run() 和像 Thread.Sleep() 这样低效的阻塞调用的需要。 这是在 .NET 4.5 中处理并发异步任务的推荐方法。

以上是如何在 .NET 4.5 中同时运行两个异步任务并获取其结果?的详细内容。更多信息请关注PHP中文网其他相关文章!

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