Sobes.tech
Middle

Ako funguje kľúčové slovo async a operátor await v C#?

sobes.tech AI

Odpoveď od AI

async označuje metódu ako je asynchrónna, čo umožňuje používať await v nej. To samo o sebe nespôsobí, že metóda bude asynchrónna, ale umožní prekladaču generovať stavový automat, ktorý bude riadiť vykonávanie.

await sa používa pred výrazom, ktorý vracia Task alebo Task<T>. Pozastaví vykonávanie aktuálnej async metódy, kým očakávaná úloha nedokončí, bez blokovania vlákna. Po dokončení úlohy pokračuje vykonávanie metódy od miesta po await. Ak úloha vracia výsledok (Task<T>), await tento výsledok vráti.

public async Task<int> GetDataAsync()
{
    // Asynchrónna operácia
    HttpClient client = new HttpClient();
    string result = await client.GetStringAsync("http://example.com"); 

    // Pokračovanie po dokončení GetStringAsync
    // Spracovanie výsledku
    return result.Length; 
}