Junior — Middle
Jak implementovat čekání na dokončení všech úkolů v sadě úkolů?
sobes.tech AI
Odpověď od AI
V jazyce C# můžete pro čekání na dokončení všech úloh v sadě použít metodu Task.WhenAll. Přijímá pole nebo kolekci úloh a vrací úlohu, která se dokončí, když jsou všechny předané úlohy dokončeny.
Pří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)
{
// nějaká práce
Console.WriteLine($"Úloha {id} dokončena");
}
Pokud nepoužíváte async/await, můžete zavolat Task.WaitAll(tasks), což blokuje aktuální vlákno, dokud všechny úlohy nedokončí.