作业完成后更新Eclipse RCP UI

时间:2015-08-06 00:28:24

标签: eclipse eclipse-rcp

我有一个长时间运行的过程,它从数据库中检索记录,我不想让UI冻结。我已将实际检索移至工作中。我如何知道作业何时完成,以便我可以使用查询结果更新UI?

在下面的示例代码中,一旦dbJob完成,我想要调用updateUI方法。

{{#with currentUser}}
  {{> editableText collection="users" field="username" placeholder="Enter username"}}
{{/with}}

1 个答案:

答案 0 :(得分:1)

使用IJobChangeListener收听作业状态的更改。有一个标准JobChangeAdapter课程,为您不需要的方法提供默认设置,以便您可以执行以下操作:

  dbJob.addJobChangeListener(new JobChangeAdapter() {
     @Override
     public void done(IJobChangeEvent event)
     {
       // Listener does not run in UI thread so use asyncExec

       Display.getDefault().asyncExec(new Runnable()
        {
          @Override
          public void run()
          {
            updateUI();
          }
        });
     }
   });

在之前添加监听器以安排作业。