0
Так что у меня такой поток:Подождите, пока все рабочие не сделали
- Создание задания рабочих х
- Есть некоторые вещи
- Подождите, пока все задания рабочих закончил
- Продолжить
Я написал этот код:
List<Task> workerTasks = new List<Task>();
foreach (Worker worker in workers)
{
Task task = Task.Factory.StartNew(() =>
{
worker.Start();
worker.Dispose();
});
workerTasks.Add(task);
}
// Do some work here
// Wait for unfinished workers
while (workerTasks.Where(t => !t.IsCompleted).Count() > 0) { }
// Proceed
Пока этот код работает до сих пор, я чувствую, что это не очень хорошая практика. Не могли бы вы дать мне несколько советов, как лучше решить эту проблему? Благодаря!
'Task.WaitAll (workerTasks. ToArray()) '? Или 'Task.WhenAll (...)'? –
https://msdn.microsoft.com/en-us/library/dd270695(v=vs.110).aspx –