我目前正在使用Mutex在进程之间建立对文件的同步访问,如下所示:
//Process 1
//High frequency "writes"
try
{
mutex.WaitOne(System.Threading.Timeout.Infinite);
try
{
//Do write operation
}
finally
{
mutex.ReleaseMutex();
}
}
catch(AbandonedMutexException)
{
//Log error
}
然后有时我可能需要检查已写入文件的内容:
//Process 2
//Low frequency "reads"
try
{
mutex.WaitOne(System.Threading.Timeout.Infinite);
try
{
//Do read operation
}
finally
{
mutex.ReleaseMutex();
}
}
catch(AbandonedMutexException)
{
//Log error
}
但是这种技术发生的情况是Process 2
,正在执行低频“读取”的那个似乎挂断并且永远不会接收到对资源的访问,或者这样做可能需要很长时间。
在我的情况下有更好的锁吗?
PS。它必须兼容才能在进程之间使用。