Sobes.tech
Middle

Kā darbojas async atslēgvārds un await operators C#?

sobes.tech AI

Atbilde no AI

async iezīmē metodi kā asinhronu, ļaujot tajā izmantot await. Tas pats par sevi nepadara metodi asinhronu, bet ļauj kompilatoram ģenerēt stāvokļa mašīnu, kas pārvaldīs izpildi.

await tiek izmantots pirms izteiksmes, kas atgriež Task vai Task<T>. Tas pārtrauc pašreizējās async metodes izpildi līdz gaidāmās uzdevuma pabeigšanai, neblokējot izpildes pavedienu. Pēc uzdevuma pabeigšanas, metodes izpilde turpinās pēc await. Ja uzdevums atgriež rezultātu (Task<T>), await šo rezultātu atgriež.

public async Task<int> GetDataAsync()
{
    // Asinhrona operācija
    HttpClient client = new HttpClient();
    string result = await client.GetStringAsync("http://example.com"); 

    // Turpinājums pēc `GetStringAsync` pabeigšanas
    // Rezultāta apstrāde
    return result.Length; 
}