Может быть статья " Как вы изменились! Ответ на изменения ресурсов в рабочей области Eclipse "
Вам необходимо получить доступ к ресурсу в рабочем пространстве потокобезопасным способом. (С этот пост )
Если вы вносите изменения в ресурсы вне IWorkspaceRunnable
(старого) или WorkspaceJob
(нового), это может быть причиной вашего сообщения «заблокировано»: рабочее пространство может быть
изменено в любое время.
Помещение изменений вашего ресурса в WorkspaceJob
гарантирует, что у вас не будет проблем с блокировкой с другими потоками.
Вам не нужно будет обновлять дерево представления ресурсов или запускать refreshLocal()
. WorkspaceJob
, если все пойдет хорошо, справится с этим за вас.
См. Также статью " О работе: API Eclipse Jobs ", чтобы узнать больше о WorkspaceJob
.
[...]
наша работа не будет выполняться, если правило планирования поддерживается другим потоком для самого корня рабочего пространства или для любого из ресурсов, содержащихся в рабочем пространстве.
После запуска этого задания никакие другие потоки не смогут получить правило для вышеупомянутых ресурсов, пока задание в нашем примере не будет завершено.