Должен ли я установить IsReusable в True в моих HttpHandlers? - PullRequest
12 голосов
/ 13 января 2010

Я никогда полностью не понимал это свойство IHttpHandler . Это свойство, которое вы должны установить при реализации интерфейса. Я предполагал, что установка его в true будет лучше для производительности, но я не уверен, какие могут быть негативные побочные эффекты. Должен ли я вернуть истину или ложь?

Ответы [ 3 ]

13 голосов
/ 13 января 2010

Используется для указания того, будет ли один экземпляр IHttpHandler использоваться для обработки нескольких одновременных запросов. Поэтому, если вы установите его на true, это улучшит производительность, но вы должны убедиться, что ваш код является поточно-ориентированным, поскольку метод ProcessRequest может вызываться из нескольких потоков одновременно.

3 голосов
/ 13 января 2010

IsReusable сохраняет обработчик в памяти и может обрабатывать несколько запросов. Если установлено значение false, он должен создавать новый экземпляр обработчика для каждого входящего запроса.

У меня были некоторые проблемы с этим свойством:

Потоковая передача изображений с использованием HttpHandler

3 голосов
/ 13 января 2010

Если ваша реализация IHttpHandler содержит состояние (возможно, настроено в конструкторе и позже используется в ProcessRequest), то иногда может быть полезно установить IsReusable в false.

...