
Async en ASP.NET Core
async/await en controllers, CancellationToken, streaming responses, timeouts, async filters, IAsyncEnumerable
1¿Por qué usar async/await en las acciones de controladores de ASP.NET Core?
¿Por qué usar async/await en las acciones de controladores de ASP.NET Core?
Respuesta
Usar async/await en los controllers libera los threads del thread pool durante las operaciones I/O (base de datos, APIs externas). Esto mejora la escalabilidad del servidor al permitir que el thread procese otras solicitudes mientras espera. Sin async, el thread permanece bloqueado y consume recursos innecesariamente, limitando el número de solicitudes concurrentes.
2¿Qué sucede si una acción de controlador retorna Task<IActionResult> sin usar async/await?
¿Qué sucede si una acción de controlador retorna Task<IActionResult> sin usar async/await?
Respuesta
Retornar Task<IActionResult> sin async/await funciona si retornas directamente una Task existente (return dbContext.SaveChangesAsync();). Sin embargo, sin la palabra clave async, no puedes usar await en el cuerpo del método. La mayoría de las veces, usar async permite esperar varias operaciones asíncronas y manejar errores con try/catch.
3¿Cuál es la diferencia entre ToList() y ToListAsync() en una acción de controlador?
¿Cuál es la diferencia entre ToList() y ToListAsync() en una acción de controlador?
Respuesta
ToList() es síncrono y bloquea el thread durante la consulta a la base de datos, limitando la escalabilidad. ToListAsync() es asíncrono y libera el thread durante la operación I/O, permitiendo que el servidor procese otras solicitudes. Usa siempre ToListAsync() en los controllers para maximizar el número de solicitudes concurrentes soportadas.
¿Cuál es el rol de CancellationToken en las acciones de controladores?
¿Cómo obtener el CancellationToken en una acción de controlador de ASP.NET Core?
+17 preguntas de entrevista
Otros temas de entrevista .NET
Fundamentos de C#
LINQ & Delegates
Fundamentos del lenguaje C#
Fundamentos de ASP.NET Core
Ciclo de vida de las solicitudes en ASP.NET Core
Configuration & Settings
Ciclo de vida de la aplicación
Dependency Injection
Entity Framework Core
Minimal APIs
Desarrollo de Web API
Authentication & Authorization
HttpClient & Networking
Serialización JSON
Entity Framework Core avanzado
Características avanzadas de C#
Clean Architecture
Logging, Monitoring & Observability
Pruebas unitarias y xUnit
Pruebas de integración
Docker & Containerization
NuGet Package Management
Memory Management & GC
Programación reactiva
Async/await & Patterns
.NET Design Patterns
Optimización del rendimiento
Seguridad y Best Practices
SignalR y tiempo real
Arquitectura de Microservicios
Domina .NET para tu próxima entrevista
Accede a todas las preguntas, flashcards, tests técnicos, ejercicios de code review y simuladores de entrevista.
Empieza gratis