затмение изменить содержание при сохранении - PullRequest
2 голосов
/ 22 июня 2009

Я реализовал ResourceChangeListener и перехватил событие сохранения. Теперь я хочу добавить код в файл. Как я могу это сделать? Я пытаюсь использовать BufferedReader / BufferedWriter, но я должен обновить файл. Если я попробую это с IFile.refreshlocal (), я получу ошибку, что файл заблокирован?

1 Ответ

1 голос
/ 22 июня 2009

Может быть статья " Как вы изменились! Ответ на изменения ресурсов в рабочей области Eclipse "

Вам необходимо получить доступ к ресурсу в рабочем пространстве потокобезопасным способом. (С этот пост )

Если вы вносите изменения в ресурсы вне IWorkspaceRunnable (старого) или WorkspaceJob (нового), это может быть причиной вашего сообщения «заблокировано»: рабочее пространство может быть изменено в любое время.
Помещение изменений вашего ресурса в WorkspaceJob гарантирует, что у вас не будет проблем с блокировкой с другими потоками.
Вам не нужно будет обновлять дерево представления ресурсов или запускать refreshLocal(). WorkspaceJob, если все пойдет хорошо, справится с этим за вас.

См. Также статью " О работе: API Eclipse Jobs ", чтобы узнать больше о WorkspaceJob.

alt text

[...] наша работа не будет выполняться, если правило планирования поддерживается другим потоком для самого корня рабочего пространства или для любого из ресурсов, содержащихся в рабочем пространстве.
После запуска этого задания никакие другие потоки не смогут получить правило для вышеупомянутых ресурсов, пока задание в нашем примере не будет завершено.

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