我在RCP应用程序中打开多个编辑器时遇到问题。据我所知,只有一个UI-Thread在绘制图形用户界面。
在我的用例中,我必须同时打开大约50个编辑器,这需要一些时间,因为在所有编辑器打开之前会阻塞UI。在我的编辑器中加载数据是通过Jobs完成的。
我试着搜索是否有某种机制可以并行打开而不阻塞UI线程,但没有找到任何东西。有这样做的可能性吗?如果每个编辑器都在自己的UI-Thread中打开/绘制,这将非常有帮助,这样用户就可以使用打开的编辑器。
发布于 2012-09-20 19:50:45
我想您已经回答了您的问题-- Eclipse-RCP应用程序中只有一个UI-Thread。您可能希望重新考虑您的应用程序设计,并在可能的情况下使用延迟加载机制(组合框、查看器等),或者尝试找到一些地方,其中数据加载需要更多的时间并可以优化,但编辑器的可视化初始化仍然需要一些时间,特别是当您同时打开多个编辑器时。
发布于 2012-09-24 23:50:04
您可以做的一件事是在集成开发环境产品中使用org.eclipse.ui.ide.IDE.openEditors(IWorkbenchPage, IFile[])或在RCP产品中使用'org.eclipse.ui.IWorkbenchPage.openEditors(IEditorInput[],String[],以推迟打开编辑器的成本。从Eclipse3.5开始,这两种方法都可用。
它根据请求创建编辑器的所有选项卡,但它只实现最终处于活动状态的编辑器。它提供了相同的行为,就像用户关闭并重新打开eclipse,同时打开了许多编辑器(只实现了可见的编辑器)。
有关更多信息,请参阅用于IWorkbenchPage的javadoc,http://help.eclipse.org/helios/index.jsp?topic=%2Forg.eclipse.platform.doc.isv%2Freference%2Fapi%2Forg%2Feclipse%2Fui%2FIWorkbenchPage.html
PW
https://stackoverflow.com/questions/12510449
复制相似问题