0
So habe ich diese Art von Flow:Warten Sie, bis alle Arbeiter fertig sind
- x Arbeiter Aufgaben erstellen
- ein paar Sachen
- Warten Sie, bis alle Arbeiter Aufgaben fertig
- Gehen
Ich schrieb dieses Stück Code:
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
Während dieser Code so weit funktioniert, fühle ich mich wie es ist keine gute Praxis. Würden Sie mir ein paar Tipps geben, wie Sie dieses Problem besser lösen können? Vielen Dank!
'Task.WaitAll (workerTasks. ToArray()) '? Oder 'Task.WhenAll (...)'? –
https://msdn.microsoft.com/en-us/library/dd270695(v=vs.110).aspx –