Изменить файл в ответ на IResourceChangeListener - PullRequest
2 голосов
/ 27 августа 2010

В контексте IResourceChangeListener мне нужно изменить заданный файл настроек в рабочей области. Из-за «Обратите внимание, что во время уведомления о событии изменения ресурса дальнейшие изменения в ресурсах могут быть запрещены». Единственное решение для внесения этого изменения состоит в том, чтобы отложить его на будущее событие (спустя 5 секунд, при следующем доступе к файлу, который будет изменен). , о следующем событии выбора и т.д ..)

Мне было бы интересно узнать, как вы справляетесь с такой ситуацией?

Ответы [ 2 ]

3 голосов
/ 27 августа 2010

Вы можете использовать Eclipse Jobs API и его правила планирования. IResource реализует ISchedulingRule, и вы можете использовать это, чтобы запланировать WorkspaceJob в вашем слушателе изменения ресурса для запуска после снятия блокировки ресурса (в вашем случае файл предпочтений).

0 голосов
/ 27 августа 2010

Очень логично запретить параллельную модификацию.Я думаю это нормально.Кроме того, разрешение / запрещение параллельной модификации является проблемой параллелизма.Следовательно, эта проблема связана с изоляцией (ACID).

Чтобы справиться с такой ситуацией, я сделаю некоторый обходной путь из учебника, который будет синхронизирован, сон, ожидание, уведомление или что-то подобноеВкратце, «блокирующий поток уведомит ожидающий поток, когда он это сделает».Это абстрактно, но я верю, что вы поняли.

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