Sobes.tech
Junior — Middle

Asinxron proqramlaşdırmada WaitAll və WhenAll metodlarının istifadəsi arasındakı fərq nədir?

sobes.tech Süni İntellekt

AI-dan cavab

C# dilində WaitAllWhenAll metodları bir neçə vəzifənin tamamlanmasını gözləmək üçün istifadə olunur, lakin mühüm fərqlərə malikdir:

  • WaitAllTask sinfinin sinxron metodudur, və ötürülən bütün vəzifələr tamamlanana qədər cari axını bloklayır. Nəticə qaytarmır və asinxron gözləməni dəstəkləmir.

  • WhenAll — tamamlandıqda bütün ötürülən vəzifələrin bitdiyini bildirən vəzifə qaytaran asinxron metoddur. await istifadə etməyə imkan verir, bu da tətbiqin performansını və cavabvermə qabiliyyətini yaxşılaşdırır.

WhenAll istifadə nümunəsi:

var tasks = new[] { Task.Delay(1000), Task.Delay(2000) };
await Task.WhenAll(tasks);
Console.WriteLine("Bütün vəzifələr tamamlandı");

WaitAll istifadə:

var tasks = new[] { Task.Delay(1000), Task.Delay(2000) };
Task.WaitAll(tasks);
Console.WriteLine("Bütün vəzifələr tamamlandı");

Əsas fərq odur ki, WaitAll axını bloklayır, WhenAll isə bloklamadan asinxron gözləməyə imkan verir.