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.