.NET 4.5 在管理并发、长时间运行的任务时面临挑战。 虽然 Task.Run()
提供了一种基本方法,但它缺乏充分利用异步功能的效率和优雅性。
卓越的解决方案利用 async
/await
创建真正的异步 Sleep
方法,允许中断和高效恢复。 Task.WhenAll()
同时等待多个任务的完成。
改进的代码示例:
<code class="language-csharp">public static async Task Go() { 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 static async Task<int> SleepAsync(int ms) { Console.WriteLine($"Sleeping for {ms} ms"); await Task.Delay(ms); Console.WriteLine($"Sleep of {ms} ms COMPLETE"); return ms; }</code>
此增强型代码使用 async
和 Task.Delay()
实现 SleepAsync
内的非阻塞延迟。 Go
通过 Task.WhenAll()
同时启动两个任务,从而实现并行执行。 完成后可使用 Result
属性访问结果。
以上是如何使用 .NET 4.5 高效地并行运行多个异步任务?的详细内容。更多信息请关注PHP中文网其他相关文章!