我有一個線程出去並嘗試建立連接。在線程中,我打電話給第三方庫。有時候,這個調用會掛起,並且永遠不會返回。在UI線程上,我希望能夠通過中止線程來取消連接嘗試,該線程應該中止對第三方庫的掛起呼叫。你如何處理有掛斷電話的線程?
我已經調用了Thread.Abort,但現在已經讀取了Thread.Abort僅在控件返回到託管代碼時才起作用。我觀察到這是真的,因爲線程永遠不會中止,而且我現在已經坐在Thread.Join上十分鐘了。我該如何處理這個懸掛的線程?我是否應該將參考歸零並繼續前進?我想盡可能地乾淨 -
「從軌道上取下並燒燬網站 - 這是確保的唯一方法。」事實上,你是對的;這是終止行爲不當的代碼的唯一保證安全的方法。 Thread.Abort不保證實際放棄行爲不端的線程;一個真正表現不佳的線程可以劫持中止。即使取下一個appdomain也不一定做你想要的。如果你絕對肯定不得不殺死行爲不端的代碼,那麼你需要將它隔離到一個可驅動的過程。 – 2009-06-11 06:39:02
謝謝里普利...我的意思是...埃裏克;-p(我會給哈德森的回覆,但我不得不使用我自己的版主工具...) – 2009-06-11 08:00:21