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;
}