Care este diferența dintre utilizarea metodelor WaitAll și WhenAll în programarea asincronă?
sobes.tech AI
Răspuns de la AI
Metodele WaitAll și WhenAll în C# sunt utilizate pentru a aștepta finalizarea mai multor sarcini, dar au diferențe importante:
-
WaitAll — este o metodă sincronică din clasa
Task, care blochează firul de execuție curent până când toate sarcinile transmise se finalizează. Nu returnează rezultate și nu suportă așteptarea asincronă. -
WhenAll — este o metodă asincronă care returnează o sarcină ce se finalizează atunci când toate sarcinile transmise sunt terminate. Permite utilizarea
awaitpentru a aștepta fără blocare, ceea ce îmbunătățește performanța și răspunsul aplicației.
Exemplu de utilizare a WhenAll:
var tasks = new[] { Task.Delay(1000), Task.Delay(2000) };
await Task.WhenAll(tasks);
Console.WriteLine("Toate sarcinile au fost finalizate");
Utilizarea WaitAll:
var tasks = new[] { Task.Delay(1000), Task.Delay(2000) };
Task.WaitAll(tasks);
Console.WriteLine("Toate sarcinile au fost finalizate");
Diferența principală este că WaitAll blochează firul, în timp ce WhenAll permite așteptarea asincronă fără blocare.