У меня есть приложение, которое работает в среде Citrix.Приложение может запускаться одновременно несколькими пользователями в разных пользовательских сеансах.В моем приложении я пишу в файл, который должен быть взаимоисключающим для всех пользовательских сессий.Я пытался использовать Mutex, чтобы избежать записи в файл из разных пользовательских сеансов, но использование Mutex не удалось, так как в некоторых сценариях разные пользовательские сессии не могли определить, был ли объект Mutex уже создан.
Может ли кто-нибудь сказать мне, какой из приведенных ниже подходов лучше добиться взаимного исключения во всех сеансах пользователя:
- Использование именованных каналов: если именованный канал уже существует, приложение будет ждатьпока канал не будет закрыт экземпляром приложения, которое его открыло.В противном случае создайте именованный канал, чтобы указать получение блокировки.
- Использование файла блокировки: создайте обычный файл на диске, чтобы указать получение блокировки, и удалите, когда необходимо выполнить разблокировку.