2011-02-08 16 views
7

Cambiar un controlador síncrono ASP.NET MVC (Controller) a un controlador asíncrono (AsyncController) parece una tarea trivial, pero ¿cuándo debería hacerlo?¿Cuándo debería usar Controladores Async en ASP.NET MVC?

¿Debo hacer todos los controladores asincrónicos independientemente de sus acciones? ¿Cuáles son ejemplos de operaciones que se mejorarían si se usaran en un controlador asíncrono?

Tomando el ejemplo más trivial: páginas html estáticas. Entonces usted tiene los controladores más básicos que simplemente devuelve View de la acción Index. ¿Debería cambiarse este controlador a asíncrono, es decir, regresar ahora desde IndexCompleted?

+2

Posible duplicado de [Controlador Async ASP.NET MVC4 - ¿Por qué usar?] (Http://stackoverflow.com/questions/15190112/asp-net-mvc4-async-controller-why-to-use) – Luiso

+0

@ Luiso Mi pregunta fue hecha dos años antes. –

Respuesta

8

Estaba leyendo esto article recientemente. Piensa que resume para qué sirve AsyncController.

6

Sé que esta es una vieja pregunta, pero me costó conseguir la respuesta, así que estoy a dos centavos.

Es como decir que si no tenemos fiebre, aún debo tomar una píldora. Debe usar el controlador Asynch si ve la falta de hilo en su servidor web. El servidor web IIS mantiene un conjunto de hilos. Entonces, cuando llega una solicitud, recoge el hilo del grupo de subprocesos. Si en un momento dado se utilizan todos los subprocesos del grupo y se recibe la solicitud, esa solicitud entra en modo de espera. Esta situación se denomina "falta de hilo". También puede ver este video de youtube donde he demostrado cómo se ve MVC hambre hilo como

http://www.youtube.com/watch?v=wvg13n5V0V0

Web Server Thread Use Diagram

Al realizar su controlador como Asynch, utiliza el hilo, favorece la espiral de operación, y mueve ese hilo de vuelta al grupo de subprocesos para que pueda ser utilizado para otras solicitudes que entren en la aplicación MVC. Una vez que la operación finaliza, retira el hilo del grupo de subprocesos y muestra la vista.

Cuestiones relacionadas