可以使用 ReaderWriterLock 类中的 AcquireWriterLock 来代替 C# 中的常规 Lock (lock() {}) 吗?

问题描述 投票:0回答:1

可以使用 ReaderWriterLock 类中的 AcquireWriterLock 方法代替 C# 中的常规 Lock (

lock() {}
) 吗?看来都是独占锁。

lock (object) {  
  // do something  
}

readerWriterLock.AcquireWriterLock();  
  // do something  
readerWriterLock.ReleaseWriterLock();
c# multithreading
1个回答
0
投票

当然可以(尽管

ReaderWriterLockSlim
可能更好);但是请记住“例外”,即您可能想在此处使用
try
/
finally

readerWriterLock.AcquireWriterLock();  
try
{
    // do something  
}
finally
{
    readerWriterLock.ReleaseWriterLock();
}

这样无论失败还是成功都可以释放锁。

© www.soinside.com 2019 - 2024. All rights reserved.