Junior — Middle
Ի՞նչ տարբերություն կա асինխրոնային ֆունկցիայի և await-ով օգտագործվող սինխրոնային ֆունկցիայի կատարողական արդյունքների միջև։
sobes.tech AI
Պատասխան AI-ից
C# լեզվում ասինխրոն ֆունկցիան վերադարձնում է Task կամ Task<T> տիպի օբյեկտ, որը ներկայացնում է ապագա արդյունքի խոստում, որը հասանելի կլինի ապագայում։ Այդպիսի ֆունկցիայի կանչի ժամանակ, կատարմանը անմիջապես շարունակվում է, սպասելու արդյունքին։
Երբ օգտագործվում է await օպերատորը ասինխրոն ֆունկցիայի հետ, ընթացիկ մեթոդի կատարմանը ժամանակավոր կանգ է առնում մինչև առաջադրանքի ավարտը, ապա արդյունքը վերադարձվում է։ Այսպիսով, await-ը թույլ է տալիս գրել ասինխրոն կոդ, որը տեսք ունի որպես սինխրոն։
Օրինակ՝
async Task<int> GetNumberAsync()
{
await Task.Delay(1000); // ասինխրոն գործողության իմիտացիա
return 42;
}
async Task Example()
{
var task = GetNumberAsync(); // սկսվում է ասինխրոն
int result = await task; // սպասում է ավարտին և ստանում արդյունքը
Console.WriteLine(result);
}
Ամփոփում՝ ասինխրոն ֆունկցիան վերադարձնում է առաջադրանք, իսկ await-ը թույլ է տալիս ստանալ առաջադրանքի արդյունքը, կանգնեցնելով մեթոդի կատարմանը մինչև նրա ավարտը։