0

RCPアプリケーション内で複数のエディターを開くときに問題が発生しました。私が知っているようにUI-Thread、GUIをペイントしているのは1つだけです。

私のユースケースでは、同時に約50のエディターを開く必要がありますが、すべてのエディターが開かれるまでUIスレッドがブロックされるため、これには時間がかかります。エディター内でのデータのロードは、ジョブを使用して行われます。

UIスレッドをブロックしないように開口部を麻痺させるメカニズムがあるかどうかを検索してみましたが、何も見つかりませんでした。これを行う可能性はありますか?各エディターを独自のUIスレッド内で開いたりペイントしたりして、ユーザーが開いたエディターで既に作業できるようにすると、非常に役立ちます。

4

2 に答える 2

0

あなたはすでにあなたの質問に答えていると思います-Eclipse-RCPアプリケーションにはUIスレッドが1つしかありません。アプリケーションの設計を再検討し、可能な場合は遅延読み込みメカニズム(コンボボックス、ビューアなど)を使用するか、データの読み込みに時間がかかり、最適化できる場所を見つけてください。ただし、エディターの視覚的な初期化にはある程度の時間がかかります。特に、複数のエディターを同時に開いている場合は時間がかかります。

于 2012-09-20T11:50:44.530 に答える
0

実行できることの1つはorg.eclipse.ui.ide.IDE.openEditors(IWorkbenchPage, IFile[])、IDE製品または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

于 2012-09-24T15:50:03.770 に答える