Java 我能在另一个SwingWorker中运行一个SwingWorker吗?
我需要运行两个Java 我能在另一个SwingWorker中运行一个SwingWorker吗?,java,swing,swingworker,Java,Swing,Swingworker,我需要运行两个SwingWorkers。其中一个只能在另一个完成后运行。我可以这样运行它们吗 class TestWorker { private FirstWorker worker1; private SecondWorker worker2; public TestWorker() { worker1 = new FirstWorker() { @Override protected void don
SwingWorker
s。其中一个只能在另一个完成后运行。我可以这样运行它们吗
class TestWorker {
private FirstWorker worker1;
private SecondWorker worker2;
public TestWorker() {
worker1 = new FirstWorker() {
@Override
protected void done() {
try {
result1 = get();
} catch (Exception) {
// exception handling
}
worker2 = new SecondWorker() {
@Override
protected void done() {
try {
result2 = get();
} catch (Exception) {
// exception handling
}
}
}
worker2.execute();
}
}
worker1.execute();
}
}
我该怎么取消呢?像这样
private cancel() {
if (worker2 != null) work2.cancel();
if (worker1 != null) work1.cancel();
}
非常感谢 你可以这样做,它会起作用的。然而,除非您的外部
done
中有其他操作未显示,否则您最好使用在doInBackground
中同时执行这两个操作并返回一组结果的操作。您可以这样做,并且它会起作用。然而,除非您的外部done
中有其他操作未显示,否则您最好使用在doInBackground
中执行这两个操作并返回一组结果的东西