Sobes.tech
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; 
}