Eclipse作业:如何覆盖作业';s错误处理对话框
我需要在作业运行时从进度监视器禁用“后台运行”按钮。在论坛上搜索之后,我没有找到任何直接的解决方法。因此,我使用Workbench的渐进式服务来运行作业,并在非UI用户模式(setUser(false))下创建作业,如下所示Eclipse作业:如何覆盖作业';s错误处理对话框,eclipse,eclipse-plugin,jobs,Eclipse,Eclipse Plugin,Jobs,我需要在作业运行时从进度监视器禁用“后台运行”按钮。在论坛上搜索之后,我没有找到任何直接的解决方法。因此,我使用Workbench的渐进式服务来运行作业,并在非UI用户模式(setUser(false))下创建作业,如下所示 PlatformUI.getWorkbench().getProgressService().run(true, true, new IRunnableWithProgress() { @Override public voi
PlatformUI.getWorkbench().getProgressService().run(true, true, new IRunnableWithProgress() {
@Override
public void run(final IProgressMonitor progressMonitor) throws InvocationTargetException, InterruptedException {
progressMonitor.beginTask("Start Job", 1);
Job job = new Job("Job1") {
@Override
protected IStatus run(IProgressMonitor dummyMonitor) {
//Use monitor of progressive service
progressMonitor.beginTask("Started Job1", no_of_tasks);
//Perform Job and update monitor once task is done
}
@Override
public boolean belongsTo(Object family) {
return family == BuildConstants.MY_JOB_FAMILY;
}
});
}
job.setUser(false);
job.schedule();
//Wait for Job to be done
IJobManager jobManager = Job.getJobManager();
Job[] jobs = jobManager.find(BuildConstants.MY_JOB_FAMILY);
while(jobs.length > 0) {
try {
Thread.sleep(1000);
} catch (InterruptedException e) {
//Do nothing.
}
jobs = jobManager.find(BuildConstants.MY_JOB_FAMILY);
}
//Once job finishes exit the Progressive service.
});
}
通过这种方法,所有积极的场景都可以正常工作。但如果出现错误,作业将显示“出现问题”对话框并立即关闭,因为作业完成后渐进式服务将退出(作业经理未发现任何属于“我的作业”系列的作业)
注意:我无法在iRunTableWithProgress中直接执行所有任务,因为我正在从父作业并行运行多个作业
我的问题如下:
为什么要使用
作业
?为什么不在iRunTableWithProgress
Hi-Greg-449中运行代码,我正在运行多个并行作业。为什么要使用作业
?为什么不运行irunablewithprogress
Hi Greg-449中的代码呢?我正在运行多个并行作业。