Использование HttpContext.Current.Items мы можем получить доступ к переменным из текущего запроса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** ?
}
}
Так что, если у меня есть три функции на странице загрузки. Могу ли я создать три потока и вызвать thread-start. И последние присоединяются к нитке? –
@ Шехар: Я бы не предложил вам это сделать. Если вам нужно извлечь внешние ресурсы, используйте модель программирования async, доступную в .NET 4.5 (и см. Ссылку в моем ответе, если вы используете MVC 4). Если вы действительно разворачиваете кучу потоков, а затем присоединяетесь к ним, вы сможете получить доступ к «HttpContext.Current» из других потоков. Имейте в виду, что «HttpContext.Current» по своей сути не является потокобезопасным. См. Http://stackoverflow.com/questions/734821/using-an-httpcontext-across-threads –
Я обновил свой код, который я пытаюсь сделать, любые предложения о том, как заставить его работать – user804401