Wat is het verschil tussen het gebruik van de methoden WaitAll en WhenAll in asynchrone programmeren?
sobes.tech AI
Antwoord van AI
De methoden WaitAll en WhenAll in C# worden gebruikt om te wachten tot meerdere taken zijn voltooid, maar hebben belangrijke verschillen:
-
WaitAll — is een synchrone methode van de klasse
Task, die de huidige thread blokkeert totdat alle meegegeven taken zijn voltooid. Het geeft geen resultaat terug en ondersteunt geen asynchrone wachten. -
WhenAll — is een asynchrone methode die een taak retourneert die voltooid wordt wanneer alle meegegeven taken zijn afgerond. Hiermee kan
awaitworden gebruikt om te wachten zonder te blokkeren, wat de prestaties en de responsiviteit van de applicatie verbetert.
Voorbeeld van gebruik van WhenAll:
var tasks = new[] { Task.Delay(1000), Task.Delay(2000) };
await Task.WhenAll(tasks);
Console.WriteLine("Alle taken zijn voltooid");
Gebruik van WaitAll:
var tasks = new[] { Task.Delay(1000), Task.Delay(2000) };
Task.WaitAll(tasks);
Console.WriteLine("Alle taken zijn voltooid");
Het belangrijkste verschil is dat WaitAll de thread blokkeert, terwijl WhenAll asynchroon wachten zonder blokkering mogelijk maakt.