我是MVC的新手,所以如果我遺漏了任何東西,請原諒我。在MVC線程中存儲Session中的值
在我的控制器之一,我開始一個類,做了一些處理,並輸出這樣的字符串:
[HttpPost]
public ActionResult Check(string reg)
{
string sCarmodel;
GetRegInfo gri = new GetRegInfo(reg, out sCarmodel);
Session["test"] = sCarmodel;
return View("Check");
}
到目前爲止好,和sCarmodel的輸出被正確地存儲在會話那裏可以稍後在視圖中訪問。但是,我需要將該類放在單獨的線程中,因爲它需要一些時間來完成它,並且我想返回View aschyncronosly。所以,我想這一點:
[HttpPost]
public ActionResult Check(string reg)
{
var getreginfoThread = new Thread(
() =>
{
string sCarmodel;
GetRegInfo gri = new GetRegInfo(reg, out sCarmodel);
Session["test"] = sCarmodel;
}
);
getreginfoThread.Start();
return View("Check");
}
我知道我可以「sCarmodel」的值在數據庫中的類的內部存儲,但我一直在尋找一種方式使用數據庫跳過。使用線程時,sCarmodel的值不會存儲在Session中,並且稍後當我試圖檢索Session時,會話爲null
。
任何人都可以提供一些建議,關於如何在線程中訪問類中的值?
謝謝!
編輯: 問題解決了,感謝大家對他們的建議!
那麼,我正在使用計時器每5秒檢查一次Session [「test」]。它始終爲空,即使後臺線程完成。 – Dimo
對不起,但它不適合我。 CallContext.LogicalGetData(「test」)始終爲空:/ – Dimo
對不起,請參閱我的編輯。 – ghord