我从这里了解到,
结果集合中的结果是否按照输入时任务的顺序排列,还是结果可以以任意顺序出现?
根据我进行的测试,似乎结果会保持顺序,但我需要确认一下。
Task.WhenAll
的任务执行顺序是不确定的,但我找不到关于结果顺序的任何信息。结果集合中的结果是否按照输入时任务的顺序排列,还是结果可以以任意顺序出现?
根据我进行的测试,似乎结果会保持顺序,但我需要确认一下。
Task.WhenAll
的任务执行顺序是不确定的,但我找不到关于结果顺序的任何信息。Task.WhenAll<TResult>(IEnumerable<Task<TResult>>)
以Task<TResult>
作为输入的重载函数包含以下语句:
如果没有任何任务出错或被取消,返回的任务将以“RanToCompletion”状态结束。返回任务的结果将被设置为一个数组,该数组按照提供的任务的相同顺序包含所有结果(例如,如果输入的任务数组包含t1、t2、t3,则输出任务的结果将返回一个TResult[],其中arr[0] == t1.Result,arr[1] == t2.Result,arr[2] == t3.Result)。
Task.WhenAll<TResult>(Task<TResult>[])
同样包含相同的语句。 - Miguel Alexandre
Task.WhenAll
的任务执行顺序是不确定的,这个说法可能会引起误解。Task.WhenAll
并不执行任何任务,它只是等待任务完成。它对任务的执行没有任何影响。 - Theodor Zoulias