【问题标题】:How to delay modificactions to the resource tree when it is locked如何在资源树被锁定时延迟对资源树的修改
【发布时间】:2012-08-27 23:00:30
【问题描述】:

我遇到了异常:

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

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

如何保存标记以便稍后将它们添加到文件中,或者还有什么方法可以延迟此更改?

【问题讨论】:

    标签: eclipse eclipse-plugin eclipse-rcp


    【解决方案1】:

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

    【讨论】:

    • 请参阅org.eclipse.core.resources.WorkspaceJob,了解使用工作空间的作业示例。
    【解决方案2】:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-05-13
      • 2019-09-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-06-08
      相关资源
      最近更新 更多