我有一個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作業,以便在應用程序關閉之前確保作業已完成?