Как сделать так, чтобы код блокировки пользовательского интерфейса eclipse cdt выполнялся в фоновом режиме и отображал результат в редакторе после завершения запуска? - PullRequest
0 голосов
/ 02 октября 2018

В Eclipse CDT в классе DefaultBinaryFileEditor в методе getStorage есть комментарий, в котором говорится, что строка objdump.getOutput (limitBytes) является вызовом блокировки пользовательского интерфейса ...

Как заставить его работать в фоновом режимебез блокировки пользовательского интерфейса для обработки более длинных файлов, чем указано параметром int limitBytes = 6 *1024* 1024;

Я могу получить доступ к org.eclipse.cdt.utils.Objdump классу 'метод getOutput через точку расширения plugin.xml"org.eclipse.cdt.core.BinaryParser" ...

Я попытался заменить класс, используемый в точке расширения "org.eclipse.ui.editors" в теге редактора, на идентификатор "org.eclipse.cdt.ui.binaryEditor "через мой plugin.xml, но это не сработало.

1 Ответ

0 голосов
/ 05 октября 2018

Я установил логический флаг для внешнего класса и во внутреннем классе BinaryFileEditorInput в методе getStorage. Я поместил задание, и перед тем, как это задание заработало, я создал пустой fStorage = new FileStorage.Я возвращаю этот пустой фсторадж.Итак, сначала редактор становится пустым.Затем, когда метод objdump.getOutput (limitBytes) возвращается в задание, я устанавливаю для fStorage возвращаемый результат.Я просто вызываю метод обновления внешнего класса.Я поместил ссылку созданного внешнего класса на внутренний статический класс в конструкторе externalclasses.Таким образом, я могу получить доступ к методу обновления.Также я переместил переменную fStorage в externalclass, потому что метод refresh запускает создание нового внутреннего класса, поэтому он переопределяет ценную переменную fStorage.

Наконец, если вы хотите обновить открытый редактор файлов elf при повторной сборке проекта, назначьтелогическая переменная и fStorage для первых значений в методе resourceChanged перед вызовом метода refresh.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...