我在asp.net的Page_Load函数中进行测试
protected void Page_Load(object sender,EventArgs e) {
Task.Factory.StartNew(() =>
{
while (true)
{
Response.Write("Hi");
Thread.Sleep(100);
}
});
Thread.Sleep(2000);
Response.Write("hello");
}
我发现事实是当页面加载功能完成时,任务将被终止。
这是真的吗?或者任务还活着?
如果我希望任务仍然存在,我该怎么办?
答案 0 :(得分:0)
在多个线程上使用Response
对象并不安全。此外,使用Response
请求结束后也不会成功。我们假设您已正确锁定它:
任务没有被杀死,因为ASP.NET甚至不知道该任务存在。怎么可能呢?您永远不会向ASP.NET提供该任务的引用。可能,您还没有真正查看过您收到的错误消息。这项任务可能有例外。
如果您希望该任务继续运行,请不要以不安全的方式使用ASP.NET对象。