C# 从锁定切换到读写器锁定
是否可以轻松地转换C#中使用getter和setter锁定的属性,从而使用C# 从锁定切换到读写器锁定,c#,properties,locking,C#,Properties,Locking,是否可以轻松地转换C#中使用getter和setter锁定的属性,从而使用ReaderWriterLock 例如,考虑以下属性: object numLock = new object(); public int Num { get { Lock(numLock) { return num; } } set { Lock(numLock) { num = value;
ReaderWriterLock
例如,考虑以下属性:
object numLock = new object();
public int Num
{
get
{
Lock(numLock)
{
return num;
}
}
set
{
Lock(numLock)
{
num = value;
}
}
}
什么是最快的方式来改变这一点,以允许多个读者或一个作家。请注意,需要更改的代码包含数百个类似的属性。因此,我正在寻找一个简单的解决方案,以快速可靠的方式转换这些属性中的锁定机制 你试过什么?很明显,你知道正确的类型,你没有尝试过使用它吗?如果是这样的话,您对这些解决方案有什么问题?顺便说一句,这样的锁不太可能有用,尽管如果没有更多信息,我们无法确定。如果你有很多属性在做这件事,这对我来说意味着你认为你得到的保护比你实际得到的保护要多。这种锁定没有任何作用,int已经是原子的了。只需完全删除它。@HansPassant至少需要一个易失性字段。在这种情况下,
ReaderWriterLock
甚至ReaderWriterLockSlim
都比普通的锁要慢。