Я использую классы Task для выполнения многопоточных вычислений.
Например:
List<Task> taskList = new List<Task>();
for(int i=0;i<10;i++){
var task = new Task(() => Console.WriteLine("Hello from taskA."));
taskList.Add(task);
task.Start();
}
Есть ли способ сделать так, чтобы выполнялось только, скажем, 3 задачи, а остальные ждали?