Я написал HttpModule, который порождает фоновый поток. Я использую поток как запланированную задачу, которая запускается в процессе, что очень удобно.
Каковы наилучшие методы отслеживания этой темы? Я никогда не делал этого раньше, и я немного смущен некоторыми аспектами этого:
-
Как узнать, работает ли поток? Я вижу, что он выполняет свою работу, но есть ли другой способ узнать, жив ли он еще? Я загрузил ProcMon, но w3wp.exe порождает лодку потоков, поэтому я понятия не имел, что такое мой поток. Я назвал это, но это не помогло.
-
Как я могу "поймать" поток, если он умирает? Есть ли какой-то метод Dispose, где я могу его написать в EventLog или что-то в случае его отказа? "Умирающая декларация" или что-то еще?
-
Как активно остановить поток? Если я хочу, чтобы он прекратил выполнение этого фонового процесса, как мне его убить без необходимости отказов IIS?
-
Есть ли способ запустить его снова, независимо от HttpModule? (Я предполагаю, что ответ на это нет...)
Изменить: Чтобы уточнить, намерение состоит в том, что моя нить никогда не исчезает. Он выполняет функцию, затем ложится спать на пару минут, затем просыпается и снова запускает функцию. Это не похоже на выполнение одной задачи, а затем завершение.