Я только начал изучать доброту "System.Threading.Tasks" в .Net 4.0 и хотел бы знать, есть ли какая-либо поддержка в поддержке для ограничения количества одновременных задач, которые запускаются сразу, или если это нужно обрабатывать вручную.
E.G: Если мне нужно вызвать метод расчета 100 раз, существует ли способ настроить 100 задач, но только 5 выполняются одновременно? Ответ может состоять только в том, чтобы создать 5 задач, вызвать Task.WaitAny и создать новую задачу по мере завершения каждой предыдущей. Я просто хочу убедиться, что я не упускаю трюк, если есть лучший способ сделать это.
В принципе, есть встроенный способ сделать это:
Dim taskArray() = {New Task(Function() DoComputation1()),
New Task(Function() DoComputation2()),
...
New Task(Function() DoComputation100())}
Dim maxConcurrentThreads As Integer = 5
RunAllTasks(taskArray, maxConcurrentThreads)
Спасибо за любую помощь.