Должен ли я установить IsReusable в True в моих HttpHandlers?

StackOverflow https://stackoverflow.com/questions/2057394

  •  20-09-2019
  •  | 
  •  

Вопрос

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

Это было полезно?

Решение

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

Другие советы

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

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

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

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top