在ASP.Net应用程序中产生一个新的线程风险

时间:2014-07-27 15:17:54

标签: asp.net multithreading

在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();
 }

1 个答案:

答案 0 :(得分:1)

The biggest problem is that background work in ASP.NET can be lost due to a variety of circumstances.你可以容忍这项工作偶尔丢失,恕不另行通知吗?

如果你开始耗尽线程池限制,那么拥有多个线程会成为一个问题(你不是因为你使用自己的线程)。或者,你正在超载机器并耗尽一些资源,如CPU,内存(默认情况下每个线程的堆栈大小为1MB),磁盘或网络。

如果你避免这些问题,你就可以了。