Junior — Middle
Qual é a diferença entre os mecanismos yield e async/await ao trabalhar com assíncronos na programação?
sobes.tech IA
Resposta da IA
yield e async/await são mecanismos diferentes para trabalhar com assíncronia e fluxos de dados:
-
yield é usado em iteradores e geradores para emitir valores passo a passo sem criar uma lista completa de imediato. Isso permite criar sequências preguiçosas.
-
async/await é uma sintaxe para simplificar o trabalho com operações assíncronas, permitindo escrever código que parece síncrono, mas é executado de forma assíncrona.
Exemplo de uso de yield em C#:
IEnumerable<int> GenerateNumbers() {
for (int i = 0; i < 5; i++) {
yield return i; // devolve um valor a cada iteração
}
}
Exemplo de async/await:
async Task<string> GetDataAsync() {
await Task.Delay(1000); // atraso assíncrono
return "Dados";
}
Assim, yield controla a emissão sequencial de dados, enquanto async/await gerencia a execução assíncrona de operações.