如何在锁定时延迟对资源树的修改

时间:2012-09-03 07:53:30

标签: eclipse eclipse-plugin eclipse-rcp

我得到了例外:

  

org.eclipse.core.internal.resources.ResourceException:资源树被锁定以进行修改。

经过一番搜索,我发现,这是因为我试图将标记添加到文件中。当我收到文件更改通知时,我正在这样做。因此,当调用我的修改代码时,工作空间仍处于通知过程的中间,并且不允许修改资源树。

如何保存标记,以便我以后可以将它们添加到文件中,或者延迟更改的另一种方法是什么?

2 个答案:

答案 0 :(得分:8)

您无法从资源增量事件处理程序修改资源树(如果可能,可以想象完全混乱的可能性)。我所知道的最常见的方法是安排一个Job并在Job的run()方法中进行修改。这意味着您需要记住要进行的修改,以便可以在作业中完成。这也意味着您不能对资源树的状态做出太多假设,因为理论上其他一些Job可能会在您之前运行,从而对树进行更改。

答案 1 :(得分:0)

更改IResourceChangeEvent.PRE_BUILD将解决此问题..为我工作

相关问题