程序猿刚子的博客

大龄程序猿,分享互联网开发相关知识!前端、后端,架构等内容,欢迎关注公众号 chengxuyuangangzi

  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理
  96 随笔 :: 14 文章 :: 110 评论 :: 27万 阅读

在自定义HttpHandler的时候往往我们都是只关注于ProcessRequest方法的实现,一般把IsReusable属性设置为true

 

今天在看项目的过程中,觉得不知道那个属性究竟是干什么用的,看了下官方的解释也不太懂,理解不了 接口的说明如下:

Gets a value indicating whether another request can use the System.Web.IHttpHandler instance. 

意思就是该实例是否还可以处理其他的实例。 很显然注释的作者高估了很多读者的基础。

理解这句话的前提是:

我们知道每个客户端发来的请求在服务器端都是一个线程, 如果用同一个实例处理多个请求的话就会涉及到线程安全方面的问题

所以当我们设置IsReusable属性为true的时候,负面影响是要注意线程安全方面的东西,正面的就是省去了重新创建实例的过程,省去了gc回收无用对象的过程

(当请求在管道结束的时候会把handler实例设置为null,等待回收)

 

posted on   程序猿刚子  阅读(567)  评论(0编辑  收藏  举报
编辑推荐:
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
阅读排行:
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· .NET周刊【3月第1期 2025-03-02】
· 分享 3 个 .NET 开源的文件压缩处理库,助力快速实现文件压缩解压功能!
· [AI/GPT/综述] AI Agent的设计模式综述
点击右上角即可分享
微信分享提示