可以使用 ReaderWriterLock 类中的 AcquireWriterLock 方法代替 C# 中的常规 Lock (
lock() {}
) 吗?看来都是独占锁。
lock (object) {
// do something
}
对
readerWriterLock.AcquireWriterLock();
// do something
readerWriterLock.ReleaseWriterLock();
当然可以(尽管
ReaderWriterLockSlim
可能更好);但是请记住“例外”,即您可能想在此处使用 try
/finally
:
readerWriterLock.AcquireWriterLock();
try
{
// do something
}
finally
{
readerWriterLock.ReleaseWriterLock();
}
这样无论失败还是成功都可以释放锁。