2010-01-13 12 views
12

Non ho mai capito completamente this property of the IHttpHandler. È una proprietà che devi impostare quando implementi l'interfaccia. Ho assunto che impostarlo su true sarebbe meglio per le prestazioni, ma non sono sicuro di quali potrebbero essere gli effetti collaterali negativi. Devo restituire vero o falso?Devo impostare IsReusable su True nei miei HttpHandlers?

+2

possibile duplicato di [Importanza bool IsReusable interfaccia gestore HTTP] (http://stackoverflow.com/questions/539302/significance-of -bool-isreusable-in-http-handler-interface) – svick

risposta

13

Viene utilizzato per indicare se una singola istanza di IHttpHandler verrà utilizzata per elaborare più richieste simultanee. Quindi, se si imposta su true, si miglioreranno le prestazioni, ma è necessario assicurarsi che il codice sia thread-safe in quanto il metodo ProcessRequest potrebbe essere richiamato da più thread contemporaneamente.

+0

Il gestore è abbastanza semplice e non necessita di mantenere lo stato. Dovrebbe essere thread-safe. Quindi penso di poterlo impostare come vero! Grazie. –

+1

Quando hai variabili membro private nel gestore e fai uso del contesto, questo è thread-safe? –

+0

Puoi spiegare ** perché il metodo ProcessRequest potrebbe essere invocato da più thread contemporaneamente. **? –

3

Se l'implementazione IHttpHandler contiene lo stato (forse impostazione nel costruttore e successivamente utilizzato in ProcessRequest), allora a volte può essere utile per impostare IsReusable su false.

3

IsReusable mantiene il gestore in memoria e in grado di gestire più richieste. Se impostato su false, deve creare una nuova istanza del gestore per ogni richiesta in entrata.

Ho avuto alcuni problemi con questa proprietà me stesso:

Streaming Databased Images Using HttpHandler

Problemi correlati