Should I set IsReusable to True in my HttpHandlers?

谁都会走 提交于 2019-12-04 17:20:46

问题


I've never fully understood this property of the IHttpHandler. It is a property that you have to set when you implement the interface. I've assumed that setting it to true would be better for performance, but I am not sure what the negative side effects might be. Should I return true or false?


回答1:


It is used to indicate if a single instance of the IHttpHandler will be used to process multiple concurrent requests. So if you set it to true it will improve performance but you must make sure that your code is thread safe because the ProcessRequest method might be invoked from multiple threads at the same time.




回答2:


If your IHttpHandler implementation contains state (perhaps setup in the constructor and later used in ProcessRequest) then it can sometimes be useful to set IsReusable to false.




回答3:


IsReusable keeps the handler in memory and able to handle multiple requests. When set to false, it has to create a new instance of the handler for each incoming request.

I had some issues with this property myself:

Streaming Databased Images Using HttpHandler



来源:https://stackoverflow.com/questions/2057394/should-i-set-isreusable-to-true-in-my-httphandlers

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!