Java EclipseRCP:在一个进度对话框中显示并行作业?

Java EclipseRCP:在一个进度对话框中显示并行作业?,java,eclipse-rcp,rcp,Java,Eclipse Rcp,Rcp,我想显示多个并行运行的进度,但只在一个进度对话框中显示 但是对Job.setUser()的每次调用似乎都会产生一个新的进度对话框 我试过: 在所有作业上设置公共进度组(通过IJobManager.createProgressGroup()获得) 让一个父作业调用setUser()并加入所有并行作业所属的作业族。(这会产生一条消息,表明后台任务阻止父作业的进度。) 我可以遵循什么模式使所有并行作业出现在一个进度对话框中?您是否尝试过使用org.eclipse.ui.progress.UIJob

我想显示多个并行运行的进度,但只在一个进度对话框中显示

但是对Job.setUser()的每次调用似乎都会产生一个新的进度对话框

我试过:

  • 在所有作业上设置公共进度组(通过IJobManager.createProgressGroup()获得)
  • 让一个父作业调用setUser()并加入所有并行作业所属的作业族。(这会产生一条消息,表明后台任务阻止父作业的进度。)

我可以遵循什么模式使所有并行作业出现在一个进度对话框中?

您是否尝试过使用
org.eclipse.ui.progress.UIJob
。签出此链接。请参阅页面底部的下载链接,尽管我不确定6年后该解决方案的相关性如何

本教程同时执行两个作业

eclipse的好处是源代码随时可用:)。只需浏览进度视图源代码。基本上想法是一样的,您需要将
进度视图->合成
转换为
您的对话框->合成


希望这会有所帮助。

ProgressMonitorFocusJobDialog只能显示一个作业的进度。如果您需要显示多个作业的进度,那么进度视图就是您的答案。如果用户单击“在后台运行”复选框,对话框将消失

您是否尝试过使用
org.eclipse.ui.progress.UIJob
?@Favonius,谢谢您的建议。我试过UIJob,但它在UI线程中运行作业,这会阻止它们并行运行,并阻止UI线程。@Andy Thomas Cramer:签出此链接。本教程同时执行两个作业。让我知道这是否有用。@Andy Thomas Cramer:eclipse的好处是源代码随时可用:)。只需浏览
进度视图
源代码。基本上想法是一样的,您需要将
进度视图->合成
转换为
您的对话框->合成
。我将所有的评论合并起来,并将其作为ans。希望这会有所帮助。实际上,没有办法直接将作业“贡献”到开放的ProgressMonitorDialog中。我想这是理想的行为,因为它们被称为背景工作;)。最简单的方法可能是(如前所述)使用您自己的机制,该机制使用类似于ProgressView的技术,并在计划用户作业队列从0更改为1时打开对话框。如果任何其他作业即将运行,它将自动添加到“打开”对话框中…这很有帮助,但我仍然没有找到如何为多个并发作业显示一个用户对话框。教程链接已断开