【发布时间】:2010-12-06 18:13:15
【问题描述】:
我喜欢 C# 中 lock(myLock){ /* do stuff */} 的快捷方式。读/写锁是否有等价物? (特别是 ReaderWriterLockSlim。)现在,我使用以下自定义方法,我认为它有效,但有点烦人,因为我必须将我的操作作为匿名函数传递,如果可能的话,我更愿意使用标准锁定机制.
void bool DoWithWriteLock(ReaderWriterLockSlim RWLock, int TimeOut, Action Fn)
{
bool holdingLock = false;
try
{
if (RWLock.TryEnterWriteLock(TimeOut))
{
holdingLock = true;
Fn();
}
}
finally
{
if (holdingLock)
{
RWLock.ExitWriteLock();
}
}
return holdingLock;
}
【问题讨论】:
-
try 语句在错误的位置。把它放在 TryEnterWriteLock() 之后。不再需要变量,快捷方式变得毫无意义。
标签: c# .net locking readerwriterlockslim