Eclipse作业:如何覆盖作业';s错误处理对话框

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

我需要在作业运行时从进度监视器禁用“后台运行”按钮。在论坛上搜索之后,我没有找到任何直接的解决方法。因此,我使用Workbench的渐进式服务来运行作业,并在非UI用户模式(setUser(false))下创建作业,如下所示

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中的代码呢?我正在运行多个并行作业。