Подтвердить что ты не робот

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

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

4b9b3361

Ответ 1

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

Ответ 2

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

Ответ 3

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

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

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