Sobes.tech
Middle

Come funzionano la parola chiave async e l'operatore await in C#?

sobes.tech AI

Risposta dell'AI

async contrassegna il metodo come asincrono, consentendo l'uso di await al suo interno. Questo non rende il metodo stesso asincrono, ma permette al compilatore di generare una macchina a stati che gestirà l'esecuzione.

await viene usato prima di un'espressione che restituisce Task o Task<T>. Sospende l'esecuzione del metodo async corrente fino al completamento del task atteso, senza bloccare il thread di esecuzione. Dopo che il task termina, l'esecuzione del metodo riprende dopo await. Se il task restituisce un risultato (Task<T>), await restituisce tale risultato.

public async Task<int> GetDataAsync()
{
    // Operazione asincrona
    HttpClient client = new HttpClient();
    string result = await client.GetStringAsync("http://example.com"); 

    // L'esecuzione continua dopo il completamento di GetStringAsync
    // Elaborazione del risultato
    return result.Length; 
}