因为一个系统的查询要做一个超时提示的功能,想到用线程来做,结果用了线程后之前正常运行的系统出错了。
跟踪到出错的位置发现HttpContext.Current 为空,产生“未将对象引用到对象实例”的异常。搜索线程 HttpContext发现已经有人写了个方法可以解决问题,直接拿来用了。方法如下
自己的理解:
1.HttpContext.Current表示当前HttpRequest 对应的Context对象
httpContext.current在不同的httpRequest 中是变化的
也就是说用httpConext.current.items来保存的数据是不能跨页面传递的。
2.HttpContext.Current只能从当前正在执行的线程中返回值
3.HttpContext.Current
这个会跟Thread.CurrentContext相关,多线程切换的时候
HttpContext.Current会被替换为当前线程的Context的。
解决线程中HttpContext.Current为空的问题
本文介绍了一个系统查询时出现的超时提示功能使用线程实现导致HttpContext.Current为空的问题,并提供了解决方法。该方法能根据不同情况返回正确的路径。
195





