Sobes.tech
Junior — Middle

Asinxron dasturlashda WaitAll va WhenAll metodlaridan foydalanish qanday farq qiladi?

sobes.tech AI

AIdan javob

C# tilida WaitAll va WhenAll metodlari bir nechta vazifalar tugashini kutish uchun ishlatiladi, ammo muhim farqlarga ega:

  • WaitAllTask sinfining sinxron metodidir, va berilgan vazifalar tugaguncha joriy oqimni bloklaydi. Natija qaytarmaydi va asinxron kutishni qoʻllab-quvvatlamaydi.

  • WhenAll — tugagach, berilgan barcha vazifalar yakunlanganini bildiradigan vazifa qaytaradigan asinxron metoddir. await yordamida bloklamasdan kutishga imkon beradi, bu esa dastur ishlashini va javob berish qobiliyatini yaxshilaydi.

WhenAll dan foydalanish misoli:

var tasks = new[] { Task.Delay(1000), Task.Delay(2000) };
await Task.WhenAll(tasks);
Console.WriteLine("Barcha vazifalar yakunlandi");

WaitAll dan foydalanish:

var tasks = new[] { Task.Delay(1000), Task.Delay(2000) };
Task.WaitAll(tasks);
Console.WriteLine("Barcha vazifalar yakunlandi");

Asosiy farq shundaki, WaitAll oqimni bloklaydi, WhenAll esa bloklamasdan asinxron kutishga imkon beradi.