.NET

Async en ASP.NET Core

async/await en controllers, CancellationToken, streaming responses, timeouts, async filters, IAsyncEnumerable

20 preguntas de entrevista·
Mid-Level
1

¿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?

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?

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.

4

¿Cuál es el rol de CancellationToken en las acciones de controladores?

5

¿Cómo obtener el CancellationToken en una acción de controlador de ASP.NET Core?

+17 preguntas de entrevista

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