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