我们的 Swing 应用程序使用出色的 SwingWorker 类在后台线程中执行一些长时间运行的任务。但是,很多旧的 Mac 只支持 Java 5,所以我们希望将我们的应用程序编译为 5 而不是 6。因为 SwingWorker 是在 Java 6 中引入的,我们不能再使用它。
如果我只需要在后台做某事,然后在完成后在 GUI 中进行通信,那么以下内容是否可以接受?还是我忘记了一些重要的事情?
public static void wannabeSwingWorker(final Runnable doInBackground, final Runnable callback) {
Thread backgroundThread = new Thread(new Runnable() {
public void run() {
doInBackground.run();
SwingUtilities.invokeLater(callback);
}
});
backgroundThread.start();
}