Junior — Middle
Ako implementovať čakanie na dokončenie všetkých úloh zo súboru úloh?
sobes.tech AI
Odpoveď od AI
V jazyku C# môžete na čakanie na dokončenie všetkých úloh zo skupiny použiť metódu Task.WhenAll. Táto metóda prijíma pole alebo kolekciu úloh a vráti úlohu, ktorá sa dokončí, keď sú všetky odovzdané úlohy ukončené.
Príklad:
Task[] tasks = new Task[]
{
Task.Run(() => DoWork(1)),
Task.Run(() => DoWork(2)),
Task.Run(() => DoWork(3))
};
await Task.WhenAll(tasks);
void DoWork(int id)
{
// nejaká práca
Console.WriteLine($"Úloha {id} dokončená");
}
Ak nepoužívate async/await, môžete zavolať Task.WaitAll(tasks), čo blokuje aktuálny vlákno, kým všetky úlohy nie sú dokončené.