我試圖找出是否有一種方法可靠地確定何時託管線程即將終止。我正在使用包含對PDF文檔支持的第三方庫,問題是爲了使用PDF功能,我必須顯式初始化PDF組件,完成工作,然後在線程終止之前顯式地初始化組件。如果未調用uninitialize,則會引發異常,因爲未被正確釋放非託管資源。由於線程類是密封的並且沒有事件,所以我必須將線程實例包裝到一個類中,並且只允許此類的實例完成這項工作。有沒有辦法確定.NET線程何時終止?
我應該指出,這是多個Windows應用程序使用的共享庫的一部分。我可能並不總是能夠控制調用這個庫的線程。由於PDF對象可能是對該庫的調用的輸出,並且由於調用線程可能會對該對象執行一些其他的工作,所以我不想立即調用清理函數;我需要在線程終止之前嘗試去做。理想情況下,我希望能夠訂閱諸如Thread.Dispose事件之類的內容,但這就是我所缺少的。
如果線程通過Abort死亡,則只會產生ThreadAbortException,但大多數情況並非如此。 – McKenzieG1 2008-09-30 17:26:28