我有一个在 Citrix 环境中运行的应用程序。该应用程序可以由不同用户会话中的多个用户同时运行。在我的应用程序中,我正在写入一个应该在所有用户会话中互斥的文件。我尝试了 Mutex 以避免从不同的用户会话写入文件,但是使用 Mutex 失败了,因为在某些情况下不同的用户会话无法检测到 Mutex 对象是否已经创建。
谁能告诉我以下哪种方法可以更好地实现所有用户会话的互斥:
- 使用命名管道:如果命名管道已经存在,那么应用程序将等待管道被打开它的应用程序实例关闭。否则创建命名管道以指示获取锁。
- 使用锁定文件:在磁盘上创建一个普通文件,用于指示获取锁定并在需要解锁时删除。