IWorkbenchListener preShutdown 优先级/顺序?

IWorkbenchListener preShutdown priority / order?

所以,我有这个 Eclipse RCP 应用程序,它通过 JNI 在幕后管理一些 Qt 资源。 Qt 老手会知道 QApplication 和 Qt GUI 对象不喜欢在 main/GUI 线程之外构造和销毁。使用 IStartup 构造 QApplication 不是问题,但事实证明在关闭时销毁 QApplication 很困难。当根据 Qt 的要求在 GUI 线程 上调用 preShutdown 时,我正在使用 IWorkbenchListener 清理我的 Qt 资源。当其他 IWorkbenchListeners 在 我的 preShutdown 被调用后否决关闭 时,就会出现问题。我需要防止这种情况。

有什么方法可以强制或确保最后调用我的 preShutdown 吗?或者是否有任何其他新颖的方法可以在 GUI 线程关闭之前 last 执行某些代码?

如果您的 RCP 实现了 IApplication,您可以在 PlatformUI.createAndRunWorkbench 退出后添加代码。

您也可以试试DisplaydisposeExec方法。 Runnable 您传递的信息是在处理显示之前调用此方法。

IWorkbenchListener.postShutdown() 根据需要工作。