Middle
Hogyan működik az async kulcsszó és az await operátor C#-ban?
sobes.tech MI
Válasz az MI-től
Az async jelzi, hogy a metódus aszinkron, lehetővé téve az await használatát benne. Ez nem teszi a metódust önmagában aszinkronná, de lehetővé teszi a fordítónak, hogy egy állapotgépet generáljon, amely az végrehajtást kezeli.
Az await egy kifejezés előtt használható, amely Task vagy Task<T>-t ad vissza. Ez felfüggeszti az aktuális async metódus végrehajtását, amíg a várt feladat be nem fejeződik, anélkül, hogy blokkolná a végrehajtási szálat. A feladat befejezése után a metódus folytatódik az await utáni ponttól. Ha a feladat eredményt ad vissza (Task<T>), az await ezt az eredményt adja vissza.
public async Task<int> GetDataAsync()
{
// Aszinkron művelet
HttpClient client = new HttpClient();
string result = await client.GetStringAsync("http://example.com");
// A végrehajtás azután folytatódik, hogy a GetStringAsync befejeződik
// Eredmény feldolgozása
return result.Length;
}