在Windows XP中是文件创建原子?

Jac*_*cko 3 c# windows windows-xp file atomic

嗨,我想在windows xp上使用文件系统作为两个进程之间的锁.即,给定文件名"file_lock",进程通过尝试创建文件"file_lock"(如果尚未存在)来获取锁.如果已经存在,则无法获得锁定.

FileStream fs=new FileStream("c:\\file_lock, FileMode.CreateNew);
Run Code Online (Sandbox Code Playgroud)

这会有用吗?如果文件不存在原子文件,是否创建文件?

谢谢!

ten*_*our 7

是的,它会奏效.但不如Mutex有多种原因,包括:

  1. 如果用户无权创建该文件,该怎么办?
  2. 当您的应用程序崩溃时,系统会清除互斥锁.它不会为您删除您的文件.
  3. 为什么不必要地引入磁盘IO的开销和风险?(我不确定这是否可行,但是当文件打开时,用户可以重命名或移动它,对吧?)
  4. 这是更多的代码.