等待不同类型的任务

Nae*_*raz 1 c# async-await

IEnumerable<Task<Request>> requestTasks = CreateRequestTasks();
Task<Trace> traceTask = CreateTraceTask();

var tasks = new List<Task>();
tasks.AddRange(requestTasks);
tasks.Add(traceTask);

await Task.WhenAll(tasks);
Run Code Online (Sandbox Code Playgroud)

如何从requestTasks集合中获得结果?

Ste*_*ary 8

如何从requestTasks集合中获取结果?

将其保存为单独的(具体化的)集合:

List<Task<Request>> requestTasks = CreateRequestTasks().ToList();
...
await Task.WhenAll(tasks);
var results = await Task.WhenAll(requestTasks);
Run Code Online (Sandbox Code Playgroud)

请注意,第二个await Task.WhenAll实际上不会执行任何"异步等待",因为所有这些任务都已完成.