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