我试图找出是否有一种方法可靠地确定何时托管线程即将终止。我正在使用包含对PDF文档支持的第三方库,问题是为了使用PDF功能,我必须显式初始化PDF组件,完成工作,然后在线程终止之前显式地初始化组件。如果未调用uninitialize,则会引发异常,因为未被正确释放非托管资源。由于线程类是密封的并且没有事件,所以我必须将线程实例包装到一个类中,并且只允许此类的实例完成这项工作。有没有办法确定.NET线程何时终止?
我应该指出,这是多个Windows应用程序使用的共享库的一部分。我可能并不总是能够控制调用这个库的线程。由于PDF对象可能是对该库的调用的输出,并且由于调用线程可能会对该对象执行一些其他的工作,所以我不想立即调用清理函数;我需要在线程终止之前尝试去做。理想情况下,我希望能够订阅诸如Thread.Dispose事件之类的内容,但这就是我所缺少的。
如果线程通过Abort死亡,则只会产生ThreadAbortException,但大多数情况并非如此。 – McKenzieG1 2008-09-30 17:26:28