我有一个带有后台线程的 asp.net 应用程序。线程在应用程序启动时启动,在应用程序结束时优雅地停止。我在共享主机上运行该网站。不幸的是,有时应用程序在结束时不会触发 Application_End 事件。我认为无论如何线程都会被杀死,但事实并非如此。我目前有 4 个线程在后台运行。三个来自以前的应用程序启动时间和 1 个来自当前应用程序会话。如何确保应用程序结束时线程关闭?有没有办法让线程检查应用程序是否已重置或已重置?或者有没有办法在应用程序启动时检查这些流氓线程并杀死它们?提前致谢。
问问题
323 次
1 回答
4
使用 ThreadPool.QueueUserWorkItem() 在后台执行您的代码,这将在 AppDomain 卸载时结束。根据标签,我假设您使用的是后台工作人员,我建议您改用此方法。(考虑添加示例代码以得出更好的答案。)
托管线程池:http: //msdn.microsoft.com/en-us/library/0ka9477y.aspx
前台/后台线程:http: //msdn.microsoft.com/en-us/library/h339syd0.aspx
于 2010-08-12T04:07:34.480 回答