Mantengo una aplicación web ASP.NET que hace que la conexión de red de un usuario se reinicie durante varios segundos cuando ejecuta un procedimiento. Por lo tanto, la solicitud de página agota el tiempo de espera del usuario, ya que nunca recibe la respuesta de la aplicación web (la conexión muere antes de recibir el paquete de respuesta).Async Function Thread.Sleep en la aplicación web
Para resolver esta situación, estaba contemplando que la página ASP.NET ejecute una función asincrónica que incorpora un Thread.Sleep(5000); // sleep for 5 seconds before executing the connection reset
De esta manera, el navegador tiene 5 segundos para recibir la respuesta de la página antes de que se restablezca su conexión.
Tengo preocupaciones con el uso de Thread.Sleep y funciones asíncronas en ASP.NET embargo. Nunca he intentado hacerlo antes, así que no estoy seguro de los posibles problemas que puede causar. ¿Alguien ve problemas potenciales con el inicio de un hilo asincrónico que contiene un Thread.Sleep
en una aplicación ASP.NET? Si es así, ¿puedes pensar en una mejor solución?
¿Dispara el temporizador incluso si el objeto que lo referencia (en este caso, la página) está destruido? – regex
Si la página que hace referencia a ella es recogida de basura, el temporizador también lo estará y no se disparará; necesitarás mantener una colección estática de temporizadores no vencidos para mantener una referencia fuerte. – FacticiusVir
Buen punto: aunque a menudo no es una preocupación, el ThreadPool puede morir de hambre si todos los hilos están DORMIDOS, y entonces tu aplicación permanece inactiva, esperando a que los hilos se vuelvan a activar. – SqlRyan