如何在运行另一个eclipse工作区作业之前等待eclipse工作区作业完成?
job1发出一个远程命令,我想将结果打印到控制台 然后,job2将发出本地命令,并将结果打印到控制台 我尝试了join(),但我只在完成所有操作后获得控制台输出如何在运行另一个eclipse工作区作业之前等待eclipse工作区作业完成?,eclipse,eclipse-plugin,eclipse-rcp,Eclipse,Eclipse Plugin,Eclipse Rcp,job1发出一个远程命令,我想将结果打印到控制台 然后,job2将发出本地命令,并将结果打印到控制台 我尝试了join(),但我只在完成所有操作后获得控制台输出 public class MyHandler extends AbstractHandler { DateTimeFormatter dtf = DateTimeFormatter.ofPattern("yyy/MM/dd HH:mm:ss"); LocalDateTime now = LocalDateTime.n
public class MyHandler extends AbstractHandler {
DateTimeFormatter dtf = DateTimeFormatter.ofPattern("yyy/MM/dd HH:mm:ss");
LocalDateTime now = LocalDateTime.now();
public Object execute(ExecutionEvent event) throws ExecutionException {
WorkspaceJob job1 = new WorkspaceJob("Execute job1") {
@Override
public IStatus runInWorkspace(IProgressMonitor monitor) {
Console.printObject("DEBUG job1 start: " + now);
try {
Thread.sleep(10000);
} catch (InterruptedException e) {
e.printStackTrace();
}
Console.printObject("DEBUG job1 end: " + now);
return Status.OK_STATUS;
}
};
job1.setUser(true);
Console.printObject("Job 1 schedule");
job1.schedule();
// try {
// job1.join();
// } catch (InterruptedException e1) {
//
// e1.printStackTrace();
// }
WorkspaceJob job2 = new WorkspaceJob("Executing job2") {
public IStatus runInWorkspace(IProgressMonitor monitor) {
Console.printObject("DEBUG job2 start: " + now);
Console.printObject("DEBUG job2 end: " + now);
return Status.OK_STATUS;
}
};
job2.setUser(true);
Console.printObject("Job 2 schedule");
job2.schedule();
// try {
// Console.printObject("Job 2 wait..");
// job2.join();
// Console.printObject("Job 2 done...");
// } catch (InterruptedException e) {
// e.printStackTrace();
// }
return null;
}
}您不应该等待,因为这将阻塞UI线程,GUI将冻结。使用JobChangeListener在作业结束时收到通知。什么是控制台?我知道了。再次感谢格雷格!控制台允许我们打印到不同的控制台。