我想要一个优雅的方式来捕获线程结束/退出事件。我发现两种方法至今:捕获.Net线程结束事件
- 使用后台工作,其中有一个RunWorkerCompleted事件,或者,
- 有我的线程工作人员明确地叫:“我退出”代表。
是的,这些都可以工作,但是父线程(调用Thread.Start()方法的线程)必须有某种方式来检测线程何时退出,而不管原因,方式或时间。例如,Visual Studio调试输出窗口报告线程退出 时:“线程0x1454已退出,代码为0(0x0)”。所以它一定是可能的。
在此先感谢您的任何想法!
这样做的问题是,如果ThreadState正在等待特定指令执行,它将显示WaitSleepJoin。因此,WaitSleepJoin中的线程实际上可能看起来像一个死线程。这在许多其他原因(包括您参考的页面中间的免责声明)中,使得它不适合获取子线程的实际状态。 – 2009-05-21 16:16:44