2011-02-23 17 views
7

Cuando se ha generado un nuevo subproceso asincrónico con esta firma, ¿el objeto de sesión ASP.NET estará disponible para este nuevo subproceso?Subprocesos asincrónicos y sesión

IAsyncResult asyncCall = f.BeginInvoke(null, f); 
+0

http://stackoverflow.com/questions/1382791/asp-net-what-to-do-if-current-session-is-null/1382811#1382811 – driis

Respuesta

5

no sé sobre qué objeto de sesión que está hablando, pero si se habla de la sesión ASP.NET que podría no estar disponible. También es una mala práctica acceder a la sesión de ASP.NET desde los hilos de fondo. Te recomendaría que pases un objeto que contenga toda la información necesaria para esta banda de rodadura de fondo en lugar de tener que extraer cosas de una sesión => hace que sea menos reutilizable.

Normalmente, si la persona que llama de este hilo espera que complete la sesión, debería estar disponible todo el tiempo, pero sinceramente es un mal diseño y simplemente lo evitaría.

+0

Sí, es el objeto de sesión de ASP.NET I Estoy hablando de ¿Y es porque el objeto de sesión ASP.NET no es seguro para subprocesos? –

+0

He vuelto a etiquetar tu pregunta para que quede más claro. –

+2

Y creo que incluso si está disponible cuando se inicia el subproceso, podría eliminarse en cualquier momento, aunque si la persona que llama esperará a que la tarea asíncrona se complete antes de salir, la sesión debería permanecer en la tarea. –

Cuestiones relacionadas