在C#中运行多个异步任务并等待它们全部完成

在C#中,异步编程是一种常见的技术,可以提高程序的性能和响应能力。当需要同时运行多个异步任务,并等待它们全部完成后再进行下一步操作时,可以使用Task.WhenAll方法来实现。

Task.WhenAll方法接受一个Task数组或IEnumerable<Task>参数,并返回一个新的Task,该任务将在所有输入任务都完成后完成。下面是一个示例代码,演示如何在C#中运行多个异步任务并等待它们全部完成:

using System;
using System.Collections.Generic;
using System.Threading.Tasks;

public class Program
{
    public static async Task Main()
    {
        // 创建一组异步任务
        List<Task<int>> tasks = new List<Task<int>>();
        tasks.Add(DoSomethingAsync(1));
        tasks.Add(DoSomethingAsync(2));
        tasks.Add(DoSomethingAsync(3));

        // 等待所有任务完成
        await Task.WhenAll(tasks);

        // 处理任务的结果
        foreach (var task in tasks)
        {
            Console.WriteLine("Task result: " + task.Result);
        }

        Console.WriteLine("All tasks completed.");
    }

    public static async Task<int> DoSomethingAsync(int id)
    {
        // 模拟异步操作
        await Task.Delay(1000);
        Console.WriteLine("Task {0} completed.", id);
        return id;
    }
}

在上述示例代码中,我们首先创建了一个List<Task<int>>类型的集合tasks,并添加了三个异步任务DoSomethingAsync,每个任务都返回一个int类型的结果。

接下来,我们使用Task.WhenAll方法等待所有任务完成。这里使用了await关键字,表示等待异步操作完成。当所有任务都完成后,程序将继续执行后续代码。

然后,我们使用foreach循环遍历每个任务,并输出其结果。这里使用了task.Result属性来获取任务的结果。

最后,我们输出一条消息表示所有任务已经完成。

通过以上代码,我们可以同时运行多个异步任务,并在它们全部完成后进行下一步操作。这种方式能够提高程序的并发性和效率,特别适用于需要同时处理多个独立任务的情况。

希望以上解答对你有帮助!如果你还有其他问题,请随时提问。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值