我写了一个产生后台线程的 HttpModule。我正在使用线程,就像在进程中运行的计划任务一样,这真的很方便。
跟踪此线程的最佳做法是什么?我以前从来没有这样做过,我对它的某些方面有点困惑:
我怎么知道线程是否仍在运行?我看到它完成了它的工作,但是还有其他方法可以知道它是否还活着?我下载了 ProcMon,但 w3wp.exe 产生了大量线程,所以我不知道哪个是我的线程。我给它起了名字,但这并没有帮助。
如果线程死了,我如何“抓住”线程?是否有某种 Dispose 方法可以让它写入 EventLog 或者如果它失败了?“垂死宣言”之类的?
如何主动停止线程?如果我想让它停止运行这个后台进程,如何在不反弹 IIS 的情况下杀死它?
无论如何要重新启动它,独立于 HttpModule 吗?(我猜这个答案是否定的……)
编辑:只是为了澄清,目的是我的线程永远不会消失。它运行一个函数,然后进入睡眠状态几分钟,然后唤醒并再次运行该函数。这不像是完成一项任务然后结束。