【问题标题】:Exchange Task collection for a value collection值集合的 Exchange 任务集合
【发布时间】:2020-10-21 09:28:45
【问题描述】:

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

 List<Task<string>> strings

我正在寻找交换方式

List<string> results

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

【问题讨论】:

    标签: c# asynchronous task


    【解决方案1】:

    您可以使用WhenAll

    创建一个任务,该任务将在一个任务中的所有任务对象完成时完成 可枚举集合已完成。

    List<Task<string>> tasks = ...
    
    var results = await Task.WhenAll(tasks);
    

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

    等待所有提供的 Task 对象完成执行。

    【讨论】:

    • 2008 打来电话,说没有看到Task.WaitAll 或类似的东西。 .NET Framework 4.0 于 2010 年 4 月发布。?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-05-26
    • 2017-11-06
    • 2010-10-07
    • 1970-01-01
    • 2012-08-27
    • 1970-01-01
    相关资源
    最近更新 更多