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:
-
WaitAll —
Tasksinfining 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.
awaityordamida 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.