Когда я прочитал в документации MSDN на Task.WaitAll(params Task[] tasks)
он говорит, что бросает ArgumentException когда:ArgumentException не выброшены на Task.WaitAll (новый Task [0])
задачи аргумент содержит нулевой элемент ,
-или-
задачи аргумента является пустой массив.
Но когда я звоню 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 (ст = vs.100) .aspx) и [VS 11] (https://msdn.microsoft.com/en-us/library/dd270695 (v = vs.110) .aspx) - в частности, он добавляет аргумент 'tasks текст пустого массива - интересный. Мои деньги - ошибка документации ... –