当我在阅读Task.WaitAll(params Task[] tasks)
MSDN文档它说当它引发ArgumentException:的ArgumentException不是扔在Task.WaitAll(新任务[0])
的任务参数包含null元素。
- 或 -
的任务参数为空数组。
但是当我打电话给Task.WaitAll(new Task[0]);
它传递没有任何例外。
我误解了文档,或者这只是一个错误(或过时的信息)?
我明白Task.WhenAll(new Task[0])
也是这样,除了返回一个任务。这个feature was sometimes used to get a completed task,之前Task.CompletedTask
是在.NET 4.6中引入的。
我真的很高兴Task.WaitAll()
似乎表现这样,所以我不必把一个空数组作为一个特例,但我仍然想确保我理解它是正确的。
顺便说一下,我在4.5.2上运行我的应用程序。但是我只是针对4.6.1制定了一个新的解决方案,它的行为方式也是一样的。
[VS 10](https://msdn.microsoft.com/en-us/library/dd270695(V之间当然改变的文档= vs.100).aspx)和[VS 11](https://msdn.microsoft.com/en-us/library/dd270695(v = vs.110).aspx) - 特别是它增加了'tasks参数是一个空阵列文本 - 有趣。我的钱是文档错误... –