Kā darbojas asinhrona metode C#?
sobes.tech AI
Atbilde no AI
Asinhronā metode C# ļauj veikt operācijas, kas var aizņemt ilgu laiku (piemēram, ievades/izvades, tīkla pieprasījumi), bez galvenā izpildes pavediena bloķēšanas.
Izsaucot asinhrono metodi, kas atzīmēta ar atslēgvārdu async, vadības pavediens tiek nodots izsaucējam līdz asinhronās operācijas pabeigšanai. Operācija tiek veikta fonā (piemēram, izmantojot pavedienu baseinu vai sistēmas ievades/izvades mehānismus).
Atslēgvārds await asinhronajā metodē norāda vietu, kur asinhronā operācija var tikt pārtraukta. Kad izpilde sasniedz await, vadības pavediens tiek atgriezts izsaucējam, un metodes turpinājums tiek plānots izpildei, kad sagaidāmā operācija beidzas.
Asinhronās operācijas rezultāts (vai izņēmums) tiek nodots atpakaļ uz asinhronās metodes turpinājumu, kur tas tiek apstrādāts. Asinhronās metodes stāvokli automātiski pārvalda C# kompilators, kas to pārvērš par galīgo automātu.
public async Task<string> GetDataAsync(string url)
{
// Ilgstošas ievades/izvades operācijas imitācija
using (var httpClient = new HttpClient())
{
string result = await httpClient.GetStringAsync(url); // await: izpilde var tikt pārtraukta
return result;
}
}
// Asinhronas metodes izsaukšanas piemērs
public async Task ProcessDataAsync(string url)
{
Console.WriteLine("Datu ielādes sākums...");
string data = await GetDataAsync(url); // Gaida asinhronas operācijas pabeigšanu
Console.WriteLine("Dati ielādēti: " + data.Length + " rakstzīmes.");
}