Существует ли универсальный Task.WaitAll?

Я запускаю несколько параллельных задач, например так:

var tasks =
    Enumerable.Range(1, 500)
    .Select(i => Task.Factory.StartNew<int>(ProduceSomeMagicIntValue))
    .ToArray();

и затем присоединяю их с помощью

Task.WaitAll(tasks);

В этой последней строке я получаю синий волнистый маркер под задач, с предупреждающим сообщением:

Ковариантное преобразование массива из Task[] в Task[]
может вызвать исключение времени выполнения при операции записи.

Я понимаю, почему я получаю это сообщение, но есть ли способ обойти это? (например, как общая версия Task.WaitAll()?)

59
задан Cristian Lupascu 16 November 2012 в 13:28
поделиться