
Async no ASP.NET Core
async/await em controllers, CancellationToken, streaming responses, timeouts, async filters, IAsyncEnumerable
1Por que usar async/await nas actions de controllers do ASP.NET Core?
Por que usar async/await nas actions de controllers do ASP.NET Core?
Resposta
Usar async/await nos controllers libera os threads do thread pool durante operações I/O (banco de dados, APIs externas). Isso melhora a escalabilidade do servidor ao permitir que o thread processe outras requisições enquanto aguarda. Sem async, o thread permanece bloqueado e consome recursos desnecessariamente, limitando o número de requisições concorrentes.
2O que acontece se uma action de controller retorna Task<IActionResult> sem usar async/await?
O que acontece se uma action de controller retorna Task<IActionResult> sem usar async/await?
Resposta
Retornar Task<IActionResult> sem async/await funciona se você retornar diretamente uma Task existente (return dbContext.SaveChangesAsync();). No entanto, sem a palavra-chave async, não é possível usar await no corpo do método. Na maioria das vezes, usar async permite aguardar várias operações assíncronas e tratar erros com try/catch.
3Qual é a diferença entre ToList() e ToListAsync() em uma action de controller?
Qual é a diferença entre ToList() e ToListAsync() em uma action de controller?
Resposta
ToList() é síncrono e bloqueia o thread durante a consulta ao banco de dados, limitando a escalabilidade. ToListAsync() é assíncrono e libera o thread durante a operação I/O, permitindo que o servidor processe outras requisições. Sempre use ToListAsync() nos controllers para maximizar o número de requisições concorrentes suportadas.
Qual é o papel do CancellationToken nas actions de controllers?
Como obter o CancellationToken em uma action de controller do ASP.NET Core?
+17 perguntas de entrevista
Outros temas de entrevista .NET
Fundamentos de C#
LINQ & Delegates
Fundamentos da linguagem C#
Fundamentos do ASP.NET Core
Ciclo de vida das requisições no ASP.NET Core
Configuration & Settings
Ciclo de vida da aplicação
Dependency Injection
Entity Framework Core
Minimal APIs
Desenvolvimento de Web API
Authentication & Authorization
HttpClient & Networking
Serialização JSON
Entity Framework Core avançado
Recursos avançados do C#
Clean Architecture
Logging, Monitoring & Observability
Testes unitários e xUnit
Testes de integração
Docker & Containerization
NuGet Package Management
Memory Management & GC
Programação reativa
Async/await & Patterns
.NET Design Patterns
Otimização de desempenho
Segurança e Best Practices
SignalR e tempo real
Arquitetura de Microsserviços
Domine .NET para sua proxima entrevista
Acesse todas as perguntas, flashcards, testes tecnicos, exercicios de code review e simuladores de entrevista.
Comece gratis