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.