RCP 开放编辑器并行



我在 RCP 应用程序中打开多个编辑器时遇到问题。据我所知,只有一个UI-Thread绘制 GUI。

在我的用例中,我必须同时打开大约 50 个编辑器,这需要一些时间,因为会阻止 UI 线程,直到所有编辑器都打开。在我的编辑器中加载数据是通过作业完成的。

我尝试搜索是否有某种机制可以对开口进行平行化以不阻止 UI 线程,但没有找到任何东西。有没有可能这样做?如果每个编辑器都在自己的UI-Thread中打开/绘制,这将非常有帮助,这样用户就可以使用对立的编辑器了。

我想你已经回答了你的问题 - Eclipse-RCP 应用程序中只有一个 UI-Thread。您可能需要重新考虑应用程序设计,并在可能的情况下使用延迟加载机制(组合框、查看器等),或者尝试找到一些数据加载需要更多时间并且可以优化的地方,但编辑器的可视化初始化仍然需要一些时间,特别是如果您同时打开多个编辑器。

你可以

做的一件事是在IDE产品中使用org.eclipse.ui.ide.IDE.openEditors(IWorkbenchPage, IFile[])或在RCP产品中使用'org.eclipse.ui.IWorkbenchPage.openEditors(IEditorInput[], String[], int)'来推迟打开编辑器的成本。 这两种方法从 Eclipse 3.5 开始都可用。

它根据请求为编辑器创建所有选项卡,但它仅具体化最终处于活动状态的编辑器。 它提供的行为与用户关闭并重新打开 eclipse 并打开许多编辑器(仅具体化可见编辑器)的行为相同。

有关更多信息,请参阅 javadoc for IWorkbenchPage,http://help.eclipse.org/helios/index.jsp?topic=%2Forg.eclipse.platform.doc.isv%2Freference%2Fapi%2Forg%2Feclipse%2Fui%2FIWorkbenchPage.html

俘虏

最新更新