ASP.NET一般处理文件Handler.ashx属性IsReusable详解

利用ASP.NET开发网站,比较多使用的是ASPX文件,很少使用ASHX文件,但ASHX在有些方面还是蛮实用的,如图片防盗链、验证码、AJAX读数据等,而且速度也快点,省去了Page类生命周期这些步骤。ASHX有个IsReusable属性,很多人对此有疑惑,以下为你详细解答:

IsResuable属性指示是否可以重用于其他IHttpHandler实例,那么什么时候可以设置为true,什么时候不能呢,如果可以设置为true,性能可以得到大大的提升,但必须保证线程安全。

那么什么叫线程安全呢?

如果你的代码所在的进程中有多个线程在同时运行,而这些线程可能会同时运行这段代码。如果每次运行结果和单线程运行的结果是一样的,而且其他的变量的值也和预期的是一样的,就是线程安全的。

或者说:一个类或者程序所提供的接口对于线程来说是原子操作或者多个线程之间的切换不会导致该接口的执行结果存在二义性,也就是说我们不用考虑同步的问题。

线程安全问题都是由全局变量及静态变量引起的。

若每个线程中对全局变量、静态变量只有读操作,而无写操作,一般来说,这个全局变量是线程安全的;若有多个线程同时执行写操作,一般都需要考虑线程同步,否则就可能影响线程安


  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
ASP.NET MVC 一般处理程序(General Handler),也称为 ashx 文件,是一种在 ASP.NET MVC 中用于处理特定请求的一种方式。 ASP.NET MVC 一般处理程序继承自 IHttpHandler 接口,它主要用于处理静态文件或非标准的请求。与控制器不同,一般处理程序不需要路由或视图,它直接接受请求并返回处理结果。 一般处理程序在项目中以 .ashx文件形式存在,可以在其中实现一些自定义的处理逻辑。可以通过在 Global.asax 文件中注册路由来映射一般处理程序的请求。 与控制器相比,一般处理程序更轻量级,更适合处理一些简单的请求,如文件下载、图片验证码生成等。它使用起来更加灵活,并且性能也更好。 使用一般处理程序的步骤如下: 1. 在项目中创建一个 .ashx 文件。 2. 实现一般处理程序的逻辑,可以通过实现 ProcessRequest 方法来处理请求,同时还可以通过实现 IRequiresSessionState 接口来访问会话状态。 3. 在 Global.asax 文件中注册一般处理程序的路由,指定请求的 URL 模式和对应的一般处理程序类名。 4. 在浏览器中访问对应的 URL,即可触发一般处理程序的逻辑,并返回处理结果。 总之,ASP.NET MVC 一般处理程序是一种用于处理特定请求的方式,它比控制器更轻量级、更灵活,适合处理一些简单的请求。我们可以通过创建一般处理程序文件,实现自定义逻辑,并在 Global.asax 文件中注册路由来使用一般处理程序。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值