我正在开发一个项目,并且有大量的电子邮件发送它的一部分,当用户点击按钮时,他/她立即得到“感谢电子邮件已发送”作为响应并且同样的方法正在发射一个异步线程。当Asp.net终止后台线程?
ThreadPool.QueueUserWorkItem(SendEMail, _message);
当用户点击发送按钮这个线程进行排队,但因为这是默认Background Thread
当页面响应结束后,该线程将被终止我所期待的,但它并没有发生,因为当前线程这火这个线程也是一个Background Thread
和一个Worker Thread
,所以这意味着有一个未完成的前景线程(可能是主线程或工作线程)仍然活着,但我不知道他们什么时候完成,因为他们的完成时间会影响我的后台工作者线程;当最后的前台线程结束时,它会导致进程终止,所以后台线程也是如此。
我应该害怕这个还是Asp.NET可以自动处理它,我有点困惑,因为我已经读了很多关于它的事情,现在一切都混在一起了。
请您澄清一点事情吗?
在此先感谢。
那么前景线程呢?哪一个是前景事件或主要事件,我如何知道它们何时发生? – Tarik 2009-12-26 08:59:48
手动创建线程通常是不被接受的,特别是在ASP.NET应用程序中。如果创建的线程太多,它会显着减慢应用程序的速度。 – 2009-12-26 09:01:14
我不知道我理解你的问题。你能否详述一下你的情况? – 2009-12-26 09:01:15