我有一个SwingWorker
,打开ServerSocket
,然后在服务器套接字上调用.accept()
。大多数情况下,该线程在拨打accept()
时被阻止。在某个时候,我想取消线程。问题在于工作线程被accept()
调用阻塞。有没有一种机制可以“解除”这个调用并调用一些关机代码?取消由Socket.Accept()阻止的SwingWorker?
目前我打电话mySwingWorker.cancel(true)
,并听我的PropertychangeListener
财产变化。当它被触发时,我检查DONE
状态,然后在尝试呼叫mySwingworker.get()
时检查CancellationException
。
奇怪的部分是,即使在CancellationException
被捕获后,我仍然可以连接到工作人员打开的套接字。
超时方法适用于我所需要的,非常感谢! – KDecker 2014-09-03 21:49:58