值集合的 Exchange 任务集合

Exchange Task collection for a value collection

正在寻找一种从任务集合中获取值的方法。 例如我有

 List<Task<string>> strings

我正在寻找兑换方式

List<string> results

我发现的唯一可接受的方法是 运行 foreach 循环并在每个任务元素上使用“await”或“result”,但我想知道是否有任何方法可以像 Task.WaitAll() 但有结果收集?

您可以使用WhenAll

Creates a task that will complete when all of the Task objects in an enumerable collection have completed.

List<Task<string>> tasks = ...

var results = await Task.WhenAll(tasks);

或者,如果由于某种原因您停留在 2008 年,您可以使用 Task.WaitAll 并将结果投影到列表中

Waits for all of the provided Task objects to complete execution.