Sobes.tech
Junior — Middle

Qual é a diferença entre os resultados da execução de uma função assíncrona e de uma função síncrona usando await?

sobes.tech IA

Resposta da IA

Uma função assíncrona em C# retorna um objeto do tipo Task ou Task<T>, que representa uma promessa de um resultado que estará disponível no futuro. Ao chamar tal função, a execução continua imediatamente, sem esperar pelo resultado.

Quando se usa o operador await com uma função assíncrona, a execução do método atual é suspensa até que a tarefa seja concluída, momento em que o resultado é retornado. Assim, o await permite escrever código assíncrono que parece síncrono.

Exemplo:

async Task<int> GetNumberAsync()
{
    await Task.Delay(1000); // simulação de uma operação assíncrona
    return 42;
}

async Task Example()
{
    var task = GetNumberAsync(); // inicia de forma assíncrona
    int result = await task;    // espera a conclusão e obtém o resultado
    Console.WriteLine(result);
}

Resumindo: a função assíncrona retorna uma tarefa, e o await permite obter o resultado da tarefa, suspendendo a execução do método até que ela seja concluída.