【发布时间】:2013-05-27 19:42:04
【问题描述】:
我目前正在使用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。它必须兼容才能在进程之间使用。
【问题讨论】:
标签: c# .net synchronization locking ipc