Ինչպես է աշխատում 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 + " նիշ.");
}