SwingWorker
的done()
方法的Javadoc:
doInBackground
方法完成后,在事件派发线程上执行。
我有线索表明在取消工作线程的情况下,这不是正确的。done
无论是在正常终止还是取消时都会被调用,但是当cancelled
为真时,它不会被加入到事件派发线程中,而这在正常终止时却会发生。
是否对于SwingWorker
被取消时done
方法被调用的情况有更精确的分析?
澄清:本问题不涉及如何cancel
一个SwingWorker
。假设SwingWorker
已正确取消。
并且不涉及线程在它们应该结束时仍在运行的问题。