使用HttpContext.Current.Items,我们可以从当前请求访问变量
我的问题是,如果请求移动到不同的线程,我们仍然可以访问它吗?
如果是,我们如何访问它?
我假设它会抛出空引用异常?
我正在尝试使用以下代码,但它会抛出Null Ref Exception
public partial class WebForm1 : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
}
protected void BtnClick(object sender, EventArgs e)
{
HttpContext.Current.Items["txtbox1"] = txtbox1.Value;
var t = new Thread(new Threadclas().Datamethod());
t.Start();
}
}
public class Threadclas
{
public void Datamethod()
{
var dat = HttpContext.Current.Items["txtbox1"];
**//how can i access HttpContext here** ?
}
}
答案 0 :(得分:3)
无论ASP.Net决定在哪个线程上运行请求,您都可以始终从当前请求访问HttpContext.Current.Items
。
如果您特别询问异步操作的行为,ASP.Net运行时将透明地处理所有线程问题。有关该主题的更多信息,我建议
http://www.asp.net/mvc/tutorials/mvc-4/using-asynchronous-methods-in-aspnet-mvc-4