私の Eclipse プラグインには、TableViewer
いくつかのデータを表示する があります。これらのデータは、リモート REST サービスから取得されます。したがって、すべてのアイテムを取得するには数秒かかります。そのため、アイテムを取得したらすぐにに追加したかったのTableViewer
です。ContentProvider
別のスレッドで REST クエリを実行します。
Thread retrieveThread = new RetrieveThread();
retrieveThread.run();
このスレッドでは、アイテムを my に追加しますTableViewer
:
MyView.instance.addItems(items);
クラスの同じメソッドMyView
:
public void addItems(List<Result> items) {
ModelProvider.INSTANCE.addItems(items);
resultLabel.setText(ModelProvider.INSTANCE.getItems().size() + " items");
PlatformUI.getWorkbench().getDisplay().asyncExec(new Runnable() {
@Override
public void run() {
viewer.refresh();
}
});
}
TableViewer
この手順でアイテムが追加され、ビューが更新されることを期待していました。しかし、今起こっていることは、Eclipse がフリーズし、それらすべての項目を同時に追加することです。より応答性の高い方法でこれを行うにはどうすればよいですか?