在ASP.Net应用程序中,可以在下面的代码中生成新线程,还是存在一些隐藏的风险?
在这段代码中,我正在执行一些代码,这些代码在这个新生成的线程上需要很长时间才能执行2到5分钟。产生的线程不是后台线程。
我在想如果有很多用户点击了按钮&btnLongRequest',那就意味着会产生很多新的线程,这可能不是一件好事,但不确定。
protected void btnLongRequest_Click(object sender, EventArgs e)
{
LongOps lo = new LongOps();
Thread t = new Thread(new ThreadStart(lo.LongOp));
t.Priority = ThreadPriority.Lowest;
t.Start();
}
答案 0 :(得分:1)
The biggest problem is that background work in ASP.NET can be lost due to a variety of circumstances.你可以容忍这项工作偶尔丢失,恕不另行通知吗?
如果你开始耗尽线程池限制,那么拥有多个线程会成为一个问题(你不是因为你使用自己的线程)。或者,你正在超载机器并耗尽一些资源,如CPU,内存(默认情况下每个线程的堆栈大小为1MB),磁盘或网络。
如果你避免这些问题,你就可以了。