Sobes.tech
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čí.