我想在EDT上运行doInBackground中的某个函数。我目前使用发布和流程设置它正常工作。但是,我想知道是否有办法在不使用发布和进程的情况下从doInBackground在EDT上运行函数。另外,不使用invokeLater。我能以某种方式这样做吗?
答案 0 :(得分:2)
您可以这样做,因为您将任何代码排队到EDT:通过添加到事件队列的Runnable:
protected void doInBackground() throws Exception {
// code to be called off of the EDT
SwingUtilities.invokeLater(new Runnable() {
public void run() {
// code to be called on the EDT
}
});
return null;
}