1. 程式人生 > >如何關閉一個swingworker執行緒?

如何關閉一個swingworker執行緒?

如果你在一個 SwingWorker 裡只用到了 doInBackground 方法
那和一個普通的 Thread 是沒有區別的
當你需要更新介面的時候,應該呼叫 publish 方法,通知 process 方法處理相關的介面更新

API 裡寫的很清楚
SwingWorker 的生命週期中包含三個執行緒:
當前 執行緒:在此執行緒上呼叫 execute() 方法。
Worker 執行緒:在此執行緒上呼叫 doInBackground() 方法。所有後臺活動都應該在此執行緒上發生。
事件指派執行緒:所有與 Swing 有關的活動都在此執行緒上發生。SwingWorker 呼叫 process 和 done() 方法。

你要強行結束一個 SwingWorker 可以用 cancel 方法