2

使用 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** ?
    }


}
4

1 回答 1

3

无论 ASP.Net 决定在哪个线程上运行请求,您始终可以从当前请求访问。HttpContext.Current.Items

如果您特别询问异步操作的行为,ASP.Net 运行时将为您透明地处理所有线程问题。有关该主题的更多信息,我建议

http://www.asp.net/mvc/tutorials/mvc-4/using-asynchronous-methods-in-aspnet-mvc-4

于 2013-03-04T07:27:50.933 回答