Sobes.tech
Junior — Middle

Cum se implementează așteptarea finalizării tuturor sarcinilor dintr-un set de sarcini?

sobes.tech AI

Răspuns de la AI

În C#, pentru a aștepta finalizarea tuturor sarcinilor dintr-un set, poți folosi metoda Task.WhenAll. Aceasta acceptă un tablou sau o colecție de sarcini și returnează o sarcină care se finalizează atunci când toate sarcinile transmise ca argumente au fost finalizate.

Exemplu:

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

await Task.WhenAll(tasks);

void DoWork(int id)
{
    // o anumită muncă
    Console.WriteLine($"Sarcina {id} finalizată");
}

Dacă nu folosești async/await, poți apela Task.WaitAll(tasks), care blochează firul de execuție curent până când toate sarcinile sunt finalizate.