我需要运行两个 SwingWorker
。其中一个只能在另一个完成后才能运行。我可以像这样运行它们吗?
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
中执行这两个操作并返回结果数组的东西。
关于java - 我可以在一个 SwingWorker 中运行另一个 SwingWorker 吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3409219/