Sobes.tech
Middle

Ինչպես է աշխատում C#-ում ասինխրոն մեթոդը։

sobes.tech AI

Պատասխան AI-ից

C# լեզվում ասինխրոն մեթոդը թույլ է տալիս իրականացնել երկար ժամանակ պահանջող գործողություններ (օրինակ, մուտք/արտահոսք, ցանցային հարցումներ), առանց հիմնական գործարկման թելին խոչընդոտելու:

Երբ կանչվում է async բանալի բառով նշված ասինխրոն մեթոդը, վերահսկողությունը փոխանցվում է կանչող կոդին մինչև ասինխրոն գործողության ավարտը: Գործողությունը կատարվում է ֆոնային ռեժիմում (օրինակ, օգտագործելով թելերի պուլ կամ համակարգի մուտք/արտահոսքի մեխանիզմներ):

await բանալի բառը նշում է այն տեղը, որտեղ ասինխրոն գործողությունը կարող է դադարեցվել: Երբ կատարման ընթացքը հասնում է await-ին, վերահսկողությունը վերադառնում է կանչող կոդին, և մեթոդի շարունակությունը պլանավորվում է կատարվելու, երբ սպասվող գործողությունը ավարտվի:

Ասինխրոն գործողության արդյունքը (կամ արտահայտություն) հետ է ուղարկվում ասինխրոն մեթոդի շարունակությանը, որտեղ այն մշակվում է: Ասինխրոն մեթոդի վիճակը ավտոմատ կերպով կառավարում է C# կոմպիլատորը, որը այն վերածում է վերջնական ավտոմատի:

public async Task<string> GetDataAsync(string url)
{
    // Ուշ տևողությամբ մուտք/արտահոսքի գործողության սիմուլյացիա
    using (var httpClient = new HttpClient())
    {
        string result = await httpClient.GetStringAsync(url); // await: մեթոդի կատարմանը կարող է դադարեցում լինել
        return result;
    }
}

// Ասինխրոն մեթոդի կանչման օրինակ
public async Task ProcessDataAsync(string url)
{
    Console.WriteLine("Տվյալների բեռնումը սկսվեց...");
    string data = await GetDataAsync(url); // Սպասում է ասինխրոն գործողության ավարտին
    Console.WriteLine("Տվյալները բեռնված են: " + data.Length + " նիշ.");
}