Eclipse RCP:检查作业是否已完成

时间:2014-11-10 16:46:34

标签: java eclipse multithreading user-interface eclipse-rcp

我想检查Job是否已完成。目前我这样做:

 if ( traceJob.getState() != Job.WAITING && traceJob.getState() != Job.RUNNING){

但我认为应该有更好的方法来检查。有人有什么好主意吗?

2 个答案:

答案 0 :(得分:5)

您可以使用Job.addJobChangeListener向作业添加侦听器。作业完成时,将调用侦听器的done方法。有一个JobChangeAdapter类,其中包含所有IJobChangeListener方法的默认实现,因此您无需实现所有这些方法。

您可以使用Job.getJobManager().join(family, progress monitor)等待作业完成。这要求您的Job覆盖belongsTo方法以测试Job所属的族。还有Job.join()等待特定工作完成。

答案 1 :(得分:0)

没有办法直接检查它(因为在计划作业运行之前也会返回NONE)。

您可能想要使用添加

布尔     成品= FALSE 对工作。

在初始化时它应该是假的,一旦作业完成就设置为true(在方法done()中某处可能?)