首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

如何正确使用Task.WhenAll

在C#中,Task.WhenAll可以用于并行执行多个异步任务,并等待所有任务完成后继续执行。以下是一个简单的示例,展示了如何正确使用Task.WhenAll:

代码语言:csharp
复制
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可能会无法正常工作。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

领券