在C#中,Task.WhenAll可以用于并行执行多个异步任务,并等待所有任务完成后继续执行。以下是一个简单的示例,展示了如何正确使用Task.WhenAll:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
class Program
{
static async Task Main(string[] args)
{
// 创建一个任务列表
List<Task> tasks = new List<Task>();
// 添加任务到列表中
tasks.Add(Task.Run(() => DoSomeWork("Task 1")));
tasks.Add(Task.Run(() => DoSomeWork("Task 2")));
tasks.Add(Task.Run(() => DoSomeWork("Task 3")));
// 使用Task.WhenAll等待所有任务完成
await Task.WhenAll(tasks);
Console.WriteLine("All tasks completed.");
}
static async Task DoSomeWork(string taskName)
{
// 模拟执行时间
await Task.Delay(1000);
Console.WriteLine($"{taskName} completed.");
}
}
在这个示例中,我们创建了一个任务列表,并使用Task.Run方法将任务添加到列表中。然后,我们使用Task.WhenAll方法等待所有任务完成。当所有任务完成后,我们会在控制台上输出“All tasks completed.”。
注意,在使用Task.WhenAll时,我们需要确保所有任务都是异步的,否则可能会阻塞主线程。此外,我们还需要确保所有任务都已经启动,否则Task.WhenAll可能会无法正常工作。
领取专属 10元无门槛券
手把手带您无忧上云