public ActionResult AsyncAction()
{
Task task = new Task(httpContext => {
System.Web.HttpContext.Current = httpContext as HttpContext;
Thread.Sleep(1000 * 10);
var x = System.Web.HttpContext.Current.Request.Form["x"];
//To do...Contains IO/NET Write/Read Operation...
}, System.Web.HttpContext.Current);
task.Start();
return View();
}
MSDN說:System.Web.HttpContext.Current在異步中是線程安全的嗎?
System.Web.HttpContext的任何公共static成員都是線程安全的 。
在我的代碼中是線程安全的?
[你稱之爲「線程安全」的東西是什麼?](http://blogs.msdn.com/b/ericlippert/archive/2009/10/19/what-is-this-thing-you-call -thread-safe.aspx) –
_「如果一段代碼在多線程同時執行期間正常工作,則它是線程安全的。」_我不會在這裏看到運行相同代碼的多個線程。 –
System.Web.HttpContext.Current是否是線程安全的(我認爲不是)。如果您可以通過「異步」調用使用它,則不起作用。你也不應該使用ASP的線程。請參閱Stephen Cleary的博客文章。 – Aron