我有一個SwingWorker
,打開ServerSocket
,然後在服務器套接字上調用.accept()
。大多數情況下,該線程在撥打accept()
時被阻止。在某個時候,我想取消線程。問題在於工作線程被accept()
調用阻塞。有沒有一種機制可以「解除」這個調用並調用一些關機代碼?取消由Socket.Accept()阻止的SwingWorker?
目前我打電話mySwingWorker.cancel(true)
,並聽我的PropertychangeListener
財產變化。當它被觸發時,我檢查DONE
狀態,然後在嘗試呼叫mySwingworker.get()
時檢查CancellationException
。
奇怪的部分是,即使在CancellationException
被捕獲後,我仍然可以連接到工作人員打開的套接字。
超時方法適用於我所需要的,非常感謝! – KDecker 2014-09-03 21:49:58