Sobes.tech
Middle

Cum funcționează cuvântul cheie async și operatorul await în C#?

sobes.tech AI

Răspuns de la AI

async marchează metoda ca fiind asincronă, permițând utilizarea await în ea. Acest lucru nu face ca metoda în sine să fie asincronă, dar permite compilatorului să genereze o mașină de stări care va gestiona execuția.

await este utilizat înaintea unei expresii care returnează Task sau Task<T>. Aceasta suspendă execuția metodei async curente până când sarcina așteptată se finalizează, fără a bloca firul de execuție. După finalizarea sarcinii, execuția metodei continuă de după await. Dacă sarcina returnează un rezultat (Task<T>), await returnează acel rezultat.

public async Task<int> GetDataAsync()
{
    // Operație asincronă
    HttpClient client = new HttpClient();
    string result = await client.GetStringAsync("http://example.com"); 

    // Execuția continuă după finalizarea GetStringAsync
    // Procesarea rezultatului
    return result.Length; 
}