Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/320.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/eclipse/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 对顺序UI作业进行排队并在UI中显示它们_Java_Eclipse_Job Scheduling - Fatal编程技术网

Java 对顺序UI作业进行排队并在UI中显示它们

Java 对顺序UI作业进行排队并在UI中显示它们,java,eclipse,job-scheduling,Java,Eclipse,Job Scheduling,如何在单个UI中显示多个连续作业 我的用例如下所示: 用户操作 开始第一个作业(未知长度) 等待第一个作业完成并启动第二个作业(已知长度) 等待第二个作业完成并启动第三个作业(已知长度) 我想通过以下方式向用户展示: 有一个没有全局进度条的主“用户操作”对话框(因为第一个作业未知,并且在执行时长度确实可变,所以我无法获得准确的总长度) 在该对话框中,有3个子部分,每个作业一个子部分,每个作业有一个进度条,第一个作业有IProgressMonitor.UNKNOWN样式 在此对话框中,进度条将作为

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

我的用例如下所示:

  • 用户操作
  • 开始第一个作业(未知长度)
  • 等待第一个作业完成并启动第二个作业(已知长度)
  • 等待第二个作业完成并启动第三个作业(已知长度)
  • 我想通过以下方式向用户展示:

  • 有一个没有全局进度条的主“用户操作”对话框(因为第一个作业未知,并且在执行时长度确实可变,所以我无法获得准确的总长度)
  • 在该对话框中,有3个子部分,每个作业一个子部分,每个作业有一个进度条,第一个作业有
    IProgressMonitor.UNKNOWN
    样式
  • 在此对话框中,进度条将作为基础作业按顺序更新
  • 这将允许最终用户立即看到其操作被分为3个子任务(子任务对最终用户来说是有意义的),并且每次启动一个新的子任务时,他都可以看到该子任务的长度(第一个子任务当然不知道)


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

    为什么不把一个工艺条分成三部分呢。第一个三分之一用于第一个作业,然后是第二个和第三个


    无论如何,这很简单!:)

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

    有关详细信息和代码段,请参阅

    从上述文章中:

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


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

    谢谢您的回答。我只是尝试在nmy作业之间添加调度规则,但不幸的是,它没有显示在同一对话框中。如果在所有作业上调用setuser(true),我会有几个对话框,如果在第一个作业上调用,我会有一个对话框,其中包含所有作业,但在第一个作业完成后它就会关闭。您是否可以使用作业视图而不是单个进度对话框?如果需要,您甚至可以实现自己的对话框来承载视图。看看这个-用于调度作业,还有这个-用于调度规则。这可能也有帮助-抱歉,忘了将其添加到我上面的评论中。