2010-01-13 5 views
12

Nunca he entendido completamente this property of the IHttpHandler. Es una propiedad que debe establecer cuando implementa la interfaz. Asumí que establecerlo en verdadero sería mejor para el rendimiento, pero no estoy seguro de cuáles podrían ser los efectos secundarios negativos. ¿Debo devolver verdadero o falso?¿Debo configurar IsReusable en True en mis HttpHandlers?

+2

posible duplicado de [Importancia de IsReusable bool en la interfaz de controlador HTTP] (http://stackoverflow.com/questions/539302/significance-of -bool-isreusable-in-http-handler-interface) – svick

Respuesta

13

Se utiliza para indicar si se utilizará una sola instancia de IHttpHandler para procesar varias solicitudes simultáneas. Por lo tanto, si lo configura en true, mejorará el rendimiento, pero debe asegurarse de que su código sea seguro para subprocesos, ya que el método ProcessRequest se puede invocar desde varios subprocesos al mismo tiempo.

+0

El controlador es bastante simple y no necesita mantener el estado. Debería ser seguro para subprocesos. ¡Así que creo que puedo establecerlo en verdad! Gracias. –

+1

Cuando tiene variables miembro privadas en el controlador y hace uso del contexto, ¿esto es seguro para los hilos? –

+0

¿Puede explicar ** porque el método ProcessRequest se puede invocar desde varios subprocesos al mismo tiempo. **? –

3

Si su aplicación contiene IHttpHandler estado (tal vez la configuración en el constructor y posteriormente utilizado en ProcessRequest), entonces a veces puede ser útil para establecer IsReusable a falso.

3

IsReusable mantiene el controlador en la memoria y es capaz de manejar múltiples solicitudes. Cuando se establece en falso, tiene que crear una nueva instancia del controlador para cada solicitud entrante.

tuve algunos problemas con esta propiedad a mí mismo:

Streaming Databased Images Using HttpHandler

Cuestiones relacionadas