Eclipse plugin Eclipse作业API:如何跟踪由另一个作业调度的作业的进度?

Eclipse plugin Eclipse作业API:如何跟踪由另一个作业调度的作业的进度?,eclipse-plugin,progress,jobs,progressmonitor,Eclipse Plugin,Progress,Jobs,Progressmonitor,对于计划并加入另一个Eclipse作业的Eclipse作业,使用进度监视器的正确方法是什么?我希望子任务与主任务相关联 理想情况下,我希望能够告诉子任务使用从主监视器创建的subgressmonitor运行,但是我看不到这样做的方法。我已经研究了Job.setProgressGroup(…,…)方法,但是文档表明应该使用IJobManager.createProgressGroup()创建组 以下是上下文的代码片段: @覆盖 受保护的IStatus运行(最终IProgressMonitor监视器

对于计划并加入另一个Eclipse作业的Eclipse作业,使用进度监视器的正确方法是什么?我希望子任务与主任务相关联

理想情况下,我希望能够告诉子任务使用从主监视器创建的
subgressmonitor
运行,但是我看不到这样做的方法。我已经研究了
Job.setProgressGroup(…,…)
方法,但是文档表明应该使用
IJobManager.createProgressGroup()
创建组

以下是上下文的代码片段:

@覆盖
受保护的IStatus运行(最终IProgressMonitor监视器){
试一试{
monitor.beginTask(“我的工作A”,100);
MyJobB子任务=新的MyJobB();
//如何跟踪子任务的进度?
子任务调度();
子任务join();
返回状态。OK_状态;
}捕获(例外情况除外){
//返回错误状态
}最后{
monitor.done();
}
}
要回答原始问题,您可以这样做:

公共类MyJobA扩展作业{
私有IProgressMonitor pGroup=Job.getJobManager().createProgressGroup();
公共MyJobA(){
超级(“我的工作A”);
组(p组,50);
}
@凌驾
受保护的IStatus运行(IProgressMonitor监视器){
MyJobB子任务=新的MyJobB();
子任务。setProgressGroup(pGroup,50);
pGroup.beginTask(“我的工作”,100);
试一试{
monitor.beginTask(“我的工作A”,10);
试一试{
//工作
班长工作(…);
}最后{
monitor.done();
}
子任务调度();
子任务join();
}最后{
pGroup.done();
}
返回状态。OK_状态;
}
}
如果您在外部创建进度组,它会更优雅一些:

IProgressMonitor组=Job.getJobManager().createProgressGroup();
试一试{
beginTask(“我的任务”,200);
MyJobB=新的MyJobB();
b、 实验组(100组);
b、 附表();
MyJobC=新的MyJobC();
c、 实验组(100组);
c、 附表();
b、 join();
c、 join();
}最后{
组。完成();
}
请注意,尚未计划的作业将显示为“已完成”:

如果可能的话,我会考虑合并这两个作业并使用.< /P>