У меня есть система .NET, в которой мне нужно разрешить блокировку и разблокировку файлов через границы процессов. Модель, которую я планирую использовать, такова:
- Пользователь генерирует токен блокировки
- Использует Блокирует файл с токеном и обновляет токен
- повторить в № 2 по мере необходимости
- Использует разблокирует все файлы, выпуская токен
- Если пользователям не удается обновить токен в течение некоторого периода времени, № 4 происходит автоматически.
Каждый шаг может быть выполнен из другого процесса.
Вопрос состоит из двух частей: приемлема ли эта модель и есть ли готовые инструменты для ее реализации? Если это нельзя сделать напрямую в ОС, я думаю о каком-то консультативном блокировка с помощью .file
s или тому подобное.
Редактировать: этот режим получает неэксклюзивные блокировки чтения, но другие режимы могут получать монопольные блокировки записи, но они всегда будут сняты тем же процессом, который их установил.