理解HttpContext

HttpContext: 获取和设置与当前线程相关联的主机上下文

      在Asp.net程序中,Asp.net会为每一个请求分配一个线程,这个线程会执行代码来生成响应结果,即使我们的代码散落在不同的 地方(类库),线程仍然会执行它们,所以,我们可以在任何地方通过HttpContext.Current来获取与当前请求相关的HttpContext对象,由于这些代码是由同一个线程执行的,所以HttpContext引用就是与当前请求相关的对象

 

         HttpApplication有一个内部方法OnThreadEnter(),Asp.net在调用外部代码前都会调用这个方法来切换HttpContext

       HttpContext是与当前线程相关,当前线程就是指与当前请求相关的线程,虽然在Asp.net中几乎所有的线程都是为了响应请求而运行的,但是还有一些线程与当前请求无关

  1 定时器的回调,2 Cache移除通知,3 ATM模式下异步完成回调,4 主动创建线程或者将任务交由线程池执行,在上述四种情况下HttpContext值为NULL

   Asp.net线程:当前线程是一个与HttpContext相关的线程,由于线程与HttpContext相关,所以它正在处理发送给Asp.net的请求。

所以正确使用HttpContext的方法是:

HttpContext context= HttpContext.Current;

    if( context != null )

     {   

         // 在这里访问与请求有关的东西。

     }

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值