Как обеспечить завершение фонового потока при завершении приложения? - PullRequest
1 голос
/ 12 августа 2010

У меня есть приложение asp.net с фоновым потоком.Поток запускается при запуске приложения и корректно останавливается при завершении приложения.Я управляю сайтом на общем хосте.К сожалению, иногда приложение не вызывает событие Application_End, когда оно заканчивается.Я бы подумал, что темы все равно будут убиты, но это не так.В настоящее время у меня есть 4 темы в фоновом режиме.Три из предыдущих раз приложение запустилось и 1 из текущего сеанса приложения.Как я могу убедиться, что потоки закрыты, когда приложение заканчивается?Есть ли способ для потоков проверить, было ли приложение сброшено или было сброшено ?Или есть способ проверить эти мошеннические потоки при запуске приложения и убить их?Заранее спасибо.

1 Ответ

4 голосов
/ 12 августа 2010

Используйте ThreadPool.QueueUserWorkItem () для выполнения вашего кода в фоновом режиме, который завершится при выгрузке домена приложения. Я предполагаю, что вы используете фоновый работник, в соответствии с тегами, и я бы предложил вместо этого попробовать. (Попробуйте добавить пример кода, чтобы получить лучшие ответы.)

Управляемый ThreadPool: http://msdn.microsoft.com/en-us/library/0ka9477y.aspx

Темы переднего плана / фона: http://msdn.microsoft.com/en-us/library/h339syd0.aspx

...