从WhenAll(任务数组)获取结果的方法是使用await关键字来等待任务数组中所有任务完成,并返回一个包含所有任务结果的数组。
具体步骤如下:
以下是一个示例代码:
async Task Main()
{
Task<int> task1 = Task.Delay(1000).ContinueWith(_ => 1);
Task<int> task2 = Task.Delay(2000).ContinueWith(_ => 2);
Task<int> task3 = Task.Delay(3000).ContinueWith(_ => 3);
Task<int>[] tasks = { task1, task2, task3 };
Task<int[]> allTasks = Task.WhenAll(tasks);
int[] results = await allTasks;
if (allTasks.Status == TaskStatus.RanToCompletion)
{
// 所有任务已完成
foreach (int result in results)
{
Console.WriteLine(result);
}
}
}
在这个示例中,我们创建了三个延迟任务,并将它们放入任务数组中。然后,我们使用WhenAll方法创建一个新任务,该任务代表了所有任务的完成。最后,我们使用await关键字等待新任务完成,并将结果赋值给results变量。如果所有任务都已完成,我们就可以通过遍历results数组来获取每个任务的结果。
腾讯云相关产品和产品介绍链接地址:
领取专属 10元无门槛券
手把手带您无忧上云