我需要运行两个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();
}
非常感谢!
答案 0 :(得分:1)
你可以这样做,它会起作用。但是,除非您的外部done
中有其他操作未显示,否则您可能会更好地处理doInBackground
中的两个操作并返回结果数组。