HttpContext.Current.Items w innym wątku

Za pomocą HttpContext.Current.Items możemy uzyskać dostęp do zmiennych z bieżącego żądania

Moje pytanie brzmi: co się stanie, jeśli żądanie zostanie przeniesione do innego wątku, czy nadal możemy uzyskać do niego dostęp?

jeśli tak, w jaki sposób możemy uzyskać do niego dostęp?

Zakładam, że rzuci wyjątek o wartości zerowej?

Próbuję z poniższym kodem, ale zgłasza wyjątek 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** ?
    }


}

questionAnswers(1)

Możeszzawsze dostępHttpContext.Current.Itemsz bieżącego żądania, bez względu na to, który wątek ASP.Net zdecyduje się uruchomić żądanie.

Jeśli pytasz o zachowanie z akcjami asynchronicznymi, środowisko wykonawcze ASP.Net będzie obsługiwać wszystkie problemy związane z wątkami. Więcej informacji na ten temat sugeruję

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

 Eric J.04 mar 2013, 18:44
Podaj HttpContext.Current.Items konstruktorowiThreadclaslub jako parametr doDatamethod. Upewnij się, że nie wychodziszBtnClick dopóki nie połączysz się z nitką (nitkami), które odradzasz. Twoja klasaThreadclas nie ma dostępu doHttpContext.Current.Items ponieważ jest to statyczna właściwośćWebForm1.
 शेखर04 mar 2013, 08:30
Więc jeśli mam trzy funkcje na stronie ładowania. Czy mogę utworzyć trzy wątki i uruchomić wątek połączenia. A potem dołącz do wątku?
 user80440104 mar 2013, 14:21
Zaktualizowałem swój kod, który próbuję zrobić, wszelkie sugestie dotyczące jego działania
 Eric J.04 mar 2013, 08:35
@Shekhar: Nie sugerowałbym, abyś to zrobił. Jeśli chcesz pobrać zasoby zewnętrzne, użyj asynchronicznego modelu programowania dostępnego w .NET 4.5 (i zobacz link w mojej odpowiedzi, jeśli używasz MVC 4). Jeśli naprawdę zakręcisz kilka wątków, a następnie dołączysz do nich, będziesz mieć dostępHttpContext.Current z innych wątków. Pamiętaj jednak o tymHttpContext.Current nie jest z natury bezpieczny dla wątków. Widziećstackoverflow.com/questions/734821/…

yourAnswerToTheQuestion