在 .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
的力量:
LongTask1
和 LongTask2
是代表长时间运行操作的异步方法。 请记住将 Task.Delay()
替换为您实际的异步逻辑。Task.WhenAll(task1, task2)
确保两项任务在继续之前完成,有效同步结果。task1.Result
和 task2.Result
提供对每个任务执行完成后的返回值的访问。与以前的方法相比,这种方法提供了更干净、更高效、真正异步的解决方案,消除了对 Task.Run()
和像 Thread.Sleep()
这样低效的阻塞调用的需要。 这是在 .NET 4.5 中处理并发异步任务的推荐方法。
以上是如何在 .NET 4.5 中同时运行两个异步任务并获取其结果?的详细内容。更多信息请关注PHP中文网其他相关文章!