Junior — Middle
Асинхрондук программалоодо WaitAll жана WhenAll ыкмаларын колдонууда эмнеге айырмасы бар?
sobes.tech AI
AIден жооп
C# тилде WaitAll жана WhenAll ыкмалары бир нече тапшырманын аяктоо убактысын күтүүгө колдонулат, бирок маанилүү айырмачылыктарга ээ:
-
WaitAll — бул
Taskклассынын синхрондуу методу, ал учурдагы агымды блоктоп, берилген бардык тапшырмалар аяктагандан кийин гана улантат. Ал натыйжа кайтарбайт жана асинхрондук күтүүнү колдобойт. -
WhenAll — бул асинхрондуу метод, ал бардык берилген тапшырмалар аяктагандан кийин бүтө турган тапшырманы кайтарат. Ал
awaitколдонуп, блоктогон эмес күтүүгө мүмкүндүк берет, бул колдонмонун иштөө жана жооп берүү мүмкүнчүлүгүн жакшыртат.
WhenAll колдонуу мисалы:
var tasks = new[] { Task.Delay(1000), Task.Delay(2000) };
await Task.WhenAll(tasks);
Console.WriteLine("Бардык тапшырмалар аяктады");
WaitAll колдонуу:
var tasks = new[] { Task.Delay(1000), Task.Delay(2000) };
Task.WaitAll(tasks);
Console.WriteLine("Бардык тапшырмалар аяктады");
Негизги айырмасы — WaitAll агымды блоктосо, WhenAll блоктогон эмес, асинхрондук күтүүгө мүмкүндүк берет.