我有一个eclipse rcp应用程序,它在子线程中定期(每5秒)执行一些工作。该线程执行一个方法来更新应用程序的状态行以指示工作已完成。 它看起来像这样:等待在eclipse rcp应用程序退出时运行作业
protected void updateStatusBar()
{
Display.getDefault().asyncExec(new Runnable() {
@Override
public void run() {
PlatformUI.getWorkbench().getActiveWorkbenchWindow().getActivePage().findView(MainView.ID).
getViewSite().getActionBars().getStatusLineManager().setMessage("work finished");
}
});
}
它运行良好。我遇到的问题是当我关闭我的应用程序时,我得到一个空指针异常,并且时常出现此错误:
作业在平台关闭后发现仍然运行。乔布斯应该由插件>是关闭期间安排他们被取消:> org.eclipse.ui.internal.progress.TaskBarProgressManager $ 2
的问题是,这项工作是因为异步执行同一的,但运行时间一切都因为结束申请而被破坏。那么是否有办法获得/等待正在运行的UI作业,以便在应用程序关闭之前确保作业已完成?