C#中的Task.WhenAll和Task.WhenAny方法介绍

在C#中,Task.WhenAll和Task.WhenAny是两个非常常用的异步方法,用于处理多个任务的完成情况。

Task.WhenAll方法接受一个Task数组作为参数,返回一个新的Task,该Task会在所有传入的Task都完成后完成。例如,下面的代码会创建两个异步任务,分别模拟两个耗时操作,并通过Task.WhenAll方法等待它们全部完成:

Task task1 = Task.Delay(1000);
Task task2 = Task.Delay(2000);
await Task.WhenAll(task1, task2);

在上面的代码中,Task.WhenAll方法会等待task1和task2都完成后才会返回。

Task.WhenAny方法也接受一个Task数组作为参数,返回一个新的Task,该Task会在任意一个传入的Task完成后完成。例如,下面的代码会创建两个异步任务,分别模拟两个耗时操作,并通过Task.WhenAny方法等待它们中的任意一个完成:

Task task1 = Task.Delay(1000);
Task task2 = Task.Delay(2000);
Task completedTask = await Task.WhenAny(task1, task2);

在上面的代码中,Task.WhenAny方法会等待task1和task2中的任意一个完成后就会返回,返回的Task对象表示已经完成的那个任务。

需要注意的是,Task.WhenAll和Task.WhenAny方法都是异步方法,需要使用await关键字等待它们的执行结果。此外,Task.WhenAll方法返回的Task对象只有在所有传入的Task都完成后才会完成,而Task.WhenAny方法返回的Task对象只有在任意一个传入的Task完成后才会完成。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值