Task.WhenAll <tresult []>退货订单?

时间:2015-07-17 18:05:57

标签: c# asynchronous task-t

我有一系列长时间运行的函数,每个函数都返回一个字符串。我觉得这对于一个任务是理想的,当我看到Task.WhenAll<TResult[]>函数时我很兴奋,但我担心它可能是短暂的;给定asyncawait的异步性质,并且我的要求是这个数组中的值是按照非常特定的顺序,我需要知道: 如果我等待这个Task.WhenAll<T[]>(...),结果数组是否会按照被调用的Task<T>的可枚举顺序或者它们的完成顺序来填充?

修改

我发现这个问题与一年前提出的this问题完全相同。问题的答案也在那里找到,但我也会在这里发布,以便更好地覆盖它。

1 个答案:

答案 0 :(得分:0)

正如Yuval在对here提问的回答中所述,答案由MSDN here提供。为简洁起见;

答案是,数组将按照将任务添加到IEnumerable<Task<T>>集合的顺序进行填充,该集合已传递给Task.WhenAll(...) NOT < / strong>他们完成的顺序。