Sobes.tech
Junior — Middle

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 await worden 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.