Middle
Jak fungují klíčová slova async a await v C#?
sobes.tech AI
Odpověď od AI
async označuje metodu jako asynchronní, což umožňuje použití await uvnitř ní. To samo o sobě nespůsobí, že metoda bude asynchronní, ale umožní překladači generovat stavový automat, který bude řídit provádění.
await se používá před výrazem, který vrací Task nebo Task<T>. Pozastaví provádění aktuální async metody, dokud očekávaná úloha nedokončí, aniž by blokovala vlákno. Po dokončení úlohy pokračuje provádění metody od místa po await. Pokud úloha vrací výsledek (Task<T>), await tento výsledek vrátí.
public async Task<int> GetDataAsync()
{
// Asynchronní operace
HttpClient client = new HttpClient();
string result = await client.GetStringAsync("http://example.com");
// Pokračování po dokončení GetStringAsync
// Zpracování výsledku
return result.Length;
}