RCP开放式编辑器并行

时间:2012-09-20 10:12:23

标签: java eclipse-rcp

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

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

我尝试搜索是否有某种机制来平滑开放以不阻止UI线程,但没有找到任何内容。有没有可能这样做?如果每个编辑器都在自己的UI-Thread中打开/绘制,那将非常有用,这样用户就可以使用已打开的编辑器了。

2 个答案:

答案 0 :(得分:0)

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

答案 1 :(得分:0)

您可以做的一件事是在IDE产品中使用org.eclipse.ui.ide.IDE.openEditors(IWorkbenchPage, IFile[])或在RCP产品中使用'org.eclipse.ui.IWorkbenchPage.openEditors(IEditorInput [],String [],int)'来推迟成本打开编辑。从Eclipse 3.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