答案 0 :(得分:5)
您要寻找的是Task.WhenAll。您应该创建与要从中获取数据的多个位置一样多的任务,然后以这种方法提供它们。
答案 1 :(得分:0)
详细介绍@Christos接受的答案:
Task.WhenAll似乎和Promise.all的替代品差不多。实际上,我发现它比我最初想象的要近。这是一个使用JavaScript Promise.all
实现的示例,您可能想在C#中复制它:
const [ resolvedPromiseOne, resolvedPromiseTwo ] = await Promise.all([ taskOne, taskTwo ]);
在C#中,您可以使用Task.WhenAll
做一些非常相似的事情(假设它们返回相同的类型)。
var taskList = new[]
{
SomeTask(),
AnotherTask()
};
var completedTasks = await Task.WhenAll(taskList);
// then access them like you would any array
var someTask = completedTasks[0];
var anotherTask = completedTasks[1];
// or just iterate over the array
foreach (var task in completedTasks)
{
doSomething(task);
}
假设它们都在async
方法/函数中。