【问题标题】:Queue sequential UI Jobs and show them in UI排队顺序 UI 作业并在 UI 中显示它们
【发布时间】:2012-05-06 01:41:43
【问题描述】:

如何在单个 UI 中显示多个连续作业?

我的用例如下:

  1. 用户操作
  2. 开始第一个作业(未知长度)
  3. 等待第一个作业完成并开始第二个作业(已知长度)
  4. 等待第二个作业完成并开始第三个作业(已知长度)

我想通过以下方式向用户展示这个:

  1. 有一个没有全局进度条的主“用户操作”对话框(因为第一个作业未知并且在执行长度上确实可变,我无法获得准确的总长度)
  2. 在此对话框中,每个作业都有 3 个子部分,每个作业都有一个进度条,第一个作业当然是 IProgressMonitor.UNKNOWN 样式。
  3. 在此对话框中,进度条将作为基础作业按顺序更新。

这将允许最终用户立即看到其操作被分成 3 个子任务(这些子任务对最终用户有意义),并且每次启动一个新的子任务时,他都可以看到此操作的长度子任务(第一个当然是未知的)。

经过多次搜索,我无法实现这一点,今天我将这 3 个子任务报告为 3 个单独的连续对话,缺点是最终用户最初可能认为他的操作将在结束时完成第一个未知子任务。

【问题讨论】:

    标签: java eclipse job-scheduling


    【解决方案1】:

    您不能实现自己的调度规则来控制作业的执行顺序,并在第一个作业正在执行时有效地阻止第二个作业,而在第二个作业正在运行时有效地阻止第三个作业?

    查看http://www.eclipse.org/articles/Article-Concurrency/jobs-api.html了解详情和代码sn-ps。

    来自上面的文章:

    任何时候获取调度规则,该线程的执行可能会被阻止,直到可以获取该规则。在这种情况下,用户会受益于看到一个对话框,该对话框显示正在运行的任务的进度,并在该任务被其他任务阻止时提供反馈。

    虽然我自己没有实现这个,但我在 Eclipse 中看到了这个。例如,当工作台保存其状态,而项目仍在构建时,Eclipse 正在报告构建进度,同时阻塞状态持久性作业,直到构建完成。它将作业显示为同一对话框中的单独条目,并清楚地表明第二个作业被第一个作业阻止。

    【讨论】:

    • 感谢您的回答。我只是尝试在 nmy 作业之间添加调度规则,但不幸的是它没有出现在同一个对话框中。如果在所有作业上调用 setuser(true),我有几个对话框,如果只在第一个作业上调用,我所有作业都有一个对话框,但第一个作业完成后立即关闭
    • 您不能使用作业视图而不是单个进度对话框吗?如有必要,您甚至可以实现自己的对话框来托管视图。看看这个 - richclient2.de/2006_09_28/using-the-eclipse-jobs-api 用于调度作业,这个 - wiki.eclipse.org/… 用于调度规则。
    • 这可能也有帮助 - wiki.eclipse.org/… 抱歉,忘记将其添加到我上面的评论中。
    【解决方案2】:

    为什么不把一个进程栏分成三部分。第一个工作的第一个三分之一,然后是第二个和第三个。

    反正很简单! :)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-04-12
      • 1970-01-01
      • 1970-01-01
      • 2021-04-16
      • 1970-01-01
      • 2015-01-06
      • 2014-03-19
      • 1970-01-01
      相关资源
      最近更新 更多