Sobes.tech
Middle

Como funciona a palavra-chave async e o operador await em C#?

sobes.tech IA

Resposta da IA

async marca o método como assíncrono, permitindo usar await nele. Isso não torna o método assíncrono por si só, mas permite ao compilador gerar uma máquina de estados que gerenciará a execução.

await é usado antes de uma expressão que retorna Task ou Task<T>. Ele suspende a execução do método async atual até que a tarefa esperada seja concluída, sem bloquear a thread de execução. Após a conclusão da tarefa, a execução do método continua após await. Se a tarefa retornar um resultado (Task<T>), await retorna esse resultado.

public async Task<int> GetDataAsync()
{
    // Operação assíncrona
    HttpClient client = new HttpClient();
    string result = await client.GetStringAsync("http://example.com"); 

    // A execução continua após GetStringAsync terminar
    // Processamento do resultado
    return result.Length; 
}