¿Cómo ejecuto un método asincrónico desde un método de controlador y devuelvo un HttpStatusCodeResult (200), sin que el delegado asincrónico finalice prematuramente su ejecución?¿Cómo ejecuto correctamente un método Async en ASP.net MVC?
Estoy trabajando en una aplicación asp.net y una de mis acciones es muy lenta (10-30 seg). Quiero devolver un HttpStatusCodeResult (200) y seguir ejecutando mi función. El functo no necesita devolver nada, pero aún así no es realmente un caso de incendio y olvidarlo ya que devuelvo una respuesta al servidor de inmediato con HttpStatusCodeResult
.
Intenté usar delegados, pero parece que una vez que devuelvo el código de estado de la acción, el delegado deja de ejecutar. Otra opción es crear un servicio de Windows, pero sería como usar una bazuca para matar una mosca. Recibo muy pocas solicitudes, por lo que los recursos y el rendimiento no son un problema en mi caso. Escuché que ThreadPool.QueueUserWorkItem
es una opción, pero ¿cuál es la más adecuada para mi caso?
Esta podría ser su mejor opción: [Usar un controlador asincrónico en ASP.NET MVC] (http://msdn.microsoft.com/en-us/library/ee728598.aspx) –
pero creo que solo optimiza el uso del grupo de subprocesos, quiero decir que no puedo devolver el código httpstatus y seguir ejecutando, consulte la _Conversión de métodos de acción síncrona en métodos de acción asincrónica_ sección –