【问题标题】:Eclipse RCP: Parallel jobs presented in one progress dialog?Eclipse RCP:在一个进度对话框中显示并行作业?
【发布时间】:2011-06-12 03:19:00
【问题描述】:

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

但每次调用 Job.setUser() 似乎都会导致一个新的进度对话框。

我试过了:

  • 为所有作业设置一个通用进度组(通过 IJobManager.createProgressGroup() 获得)。
  • 有一个父作业调用 setUser() 并加入所有并行作业所属的作业族。 (这会导致后台任务阻止父作业的进度。)

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

【问题讨论】:

  • 你试过org.eclipse.ui.progress.UIJob吗?
  • @Favonius,感谢您的建议。我试过 UIJob,但它在 UI 线程中运行作业,这会阻止它们并行运行,并阻塞 UI 线程。
  • @Andy Thomas-Cramer:查看此链接jdg2e.com/ch29.jobs/doc/index.html。本教程同时执行两个作业。让我知道这是否有帮助。
  • @Andy Thomas-Cramer:eclipse 的好处是源代码很容易获得:)。只需破解progress view 源。本质上这个想法是一样的,你需要翻译的是Progress View -> CompositeYour Dialog -> Composite。我正在组合所有的 cmets 并将其作为 ans。希望这会有所帮助。
  • 实际上没有办法直接将作业“贡献”到打开的 ProgressMonitorDialog 中。我想这是期望的行为,因为它们被称为 background 工作;)。可能最简单的方法是(如前所述)使用您自己的机制,该机制使用类似的技术,如 ProgressView 并在计划的用户作业队列从 0 更改为 1 时打开对话框。如果任何其他作业即将运行,它将自动添加到打开的对话框中...

标签: java eclipse-rcp rcp


【解决方案1】:

您是否尝试过使用org.eclipse.ui.progress.UIJob。查看此链接 http://www.jdg2e.com/ch29.jobs/doc/index.html. https://web.archive.org/web/20090406175007/http://www.jdg2e.com:80/ 查看页面底部的下载链接,尽管我不确定 6 年后该解决方案的相关性如何。

本教程同时执行两个作业。

eclipse 的好处是源代码很容易获得:)。只需破解进度视图源即可。本质上思路是一样的,你需要把Progress View -> Composite翻译成Your Dialog -> Composite

希望这会有所帮助。

【讨论】:

  • 这很有帮助,但我仍然没有找到如何为多个并发作业显示一个用户对话框。
  • 教程链接失效
【解决方案2】:

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

【讨论】:

    猜你喜欢
    • 2017-12-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-02-22
    • 1970-01-01
    • 1970-01-01
    • 2017-03-24
    • 1970-01-01
    相关资源
    最近更新 更多