Sobes.tech
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; 
}