Sobes.tech
Junior — Middle

Kako implementirati čekanje na završetak svih zadataka iz skupa zadataka?

sobes.tech АИ

Одговор од АИ

U C#-u, za čekanje na završetak svih zadataka iz skupa, možete koristiti metodu Task.WhenAll. Ona prihvata niz ili kolekciju zadataka i vraća zadatak koji se završava kada su sve prosleđene zadatke završene.

Primer:

Task[] tasks = new Task[]
{
    Task.Run(() => DoWork(1)),
    Task.Run(() => DoWork(2)),
    Task.Run(() => DoWork(3))
};

await Task.WhenAll(tasks);

void DoWork(int id)
{
    // neki posao
    Console.WriteLine($"Zadatak {id} završen");
}

Ako ne koristite async/await, možete pozvati Task.WaitAll(tasks), što blokira trenutni tok dok se svi zadaci ne završe.