როგორ მუშაობს ასინქრონული მეთოდი 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 + " белгиден.");
}