我刚开始使用 .net mvc 5 async await 技术。我有一些需要在运行时确定并行运行的任务,它们都具有不同的返回类型,我想使用 Task.WhenAll 等待它们完成。像这个问题所讨论的那样,但我没有预定义要运行的任务集合。我需要在运行时创建一个具有不同返回类型的任务集合并等待它们完成。
List<Task>
,然后使用Task.WhenAll
:var tasks = new List<Task>();
var task1 = Func1Async();
tasks.Add(task1);
var task2 = Func2Async();
tasks.Add(task2);
...
await Task.WhenAll(tasks);
var result1 = await task1;
var result2 = await task2;
dynamic
,像这样:var results = tasks.Select((dynamic x) => x.Result);
- Stephen Clearyawait Task.WhenAll
这一行将抛出异常。 - Stephen Cleary