Предположим, у меня есть коллекция Task
s, которую я собираюсь на WaitAll()
. Предположим, что до того, как все они закончили, я хочу добавить еще несколько задач в эту коллекцию, и я хочу, чтобы ожидание продолжалось до тех пор, пока не будет все сделано тоже. И я мог бы добавить еще больше задач до конца и т. Д. И т. Д.Добавить дополнительные задачи в существующий WaitAll
Могу ли я сделать это с помощью TPL? Или мне придется ручным способом управлять потоками? (Тьфу!)
WaitAll()
действует на Task[]
, так что я не могу просто иметь List<Task>
, что я называю .ToArray()
дальше, потому что тогда Wait не будет знать о новых задачах, которые добавляются?
Аналогичные вопросы о WaitAny()
применяются.
Re Wait/When, потому что это обновление Threading в сердце огромного старого кода (замена «семафора QueueUserWorkItem' +' ManualResetEvent ») и с асинхронным и/или обратным вызовом, распространяющимся по всему остальная часть базы кода будет несостоятельной. – Brondahl