首页 >后端开发 >C++ >如何在.NET 4.5中高效运行并行异步任务?

如何在.NET 4.5中高效运行并行异步任务?

Linda Hamilton
Linda Hamilton原创
2025-01-13 12:09:43969浏览

How Can I Efficiently Run Parallel Async Tasks in .NET 4.5?

优化 .NET 4.5 中的并行异步操作

.NET 4.5 提供了强大的异步编程功能,可以并发执行多个冗长的任务。 然而,一些初始实现可能显得过于复杂,并且缺乏异步方法固有的优雅性。 这个改进的示例解决了这些缺点。

增强的代码结构

以下精炼代码提供了更高效、简化的方法:

<code class="language-csharp">async Task GoAsync()
{
    Console.WriteLine("Initiating Tasks");

    Task<int> task1 = SleepAsync(5000);
    Task<int> task2 = SleepAsync(3000);

    await Task.WhenAll(task1, task2);

    int totalSleepTime = task1.Result + task2.Result;

    Console.WriteLine($"Total sleep time: {totalSleepTime} ms");
}

private async Task<int> SleepAsync(int milliseconds)
{
    Console.WriteLine($"Sleeping for {milliseconds} ms");

    try
    {
        await Task.Delay(milliseconds);
        return milliseconds;
    }
    finally
    {
        Console.WriteLine($"Sleep for {milliseconds} ms COMPLETE");
    }
}</code>

主要改进:

  • GoAsync 现在是异步方法 (async Task),允许使用 await 来管理任务完成情况。
  • SleepAsync 是一个返回 Task<int> 的异步方法,反映了操作的异步性质。
  • Task.WhenAll 有效地同时等待两项任务的完成,消除了显式 .Result 访问的需要并提高了性能。

功能代码:

修改后的代码同时执行这两个任务,有效地收集结果。 该方法为.NET 4.5中并行异步任务执行提供了一种更干净、更简洁、更高效的解决方案。

以上是如何在.NET 4.5中高效运行并行异步任务?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn