Middle
Ինչպես է աշխատում async բանալի բառը և await օպերատորը C#-ում?
sobes.tech AI
Պատասխան AI-ից
async նշում է մեթոդը որպես ասինխրոն, ինչը թույլ է տալիս օգտագործել await ներսում։ Սա ինքնին մեթոդը ասինխրոն չի դարձնում, բայց թույլ է տալիս կոմպիլյատորին ստեղծել վիճակ մեքենա, որը կառավարվելու է կատարմամբ:
await օգտագործվում է այն արտահայտության առաջ, որը վերադարձնում է Task կամ Task<T>։ Այն դադարեցնում է ընթացիկ async մեթոդի կատարմանը մինչև սպասվող առաջադրանքի ավարտը, առանց բլոկավորելու կատարման հոսքը։ Երբ առաջադրանքը ավարտվի, մեթոդի կատարմանը շարունակվում է await-ից հետո։ Եթե առաջադրանքը վերադարձնում է արդյունք (Task<T>), await-ը վերադարձնում է այդ արդյունքը։
public async Task<int> GetDataAsync()
{
// Ասինխրոն գործողություն
HttpClient client = new HttpClient();
string result = await client.GetStringAsync("http://example.com");
// Կատարման շարունակություն `GetStringAsync`-ի ավարտից հետո
// Արդյունքի մշակումը
return result.Length;
}