Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/317.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 从锁定切换到读写器锁定_C#_Properties_Locking - Fatal编程技术网

C# 从锁定切换到读写器锁定

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;

是否可以轻松地转换C#中使用getter和setter锁定的属性,从而使用
ReaderWriterLock

例如,考虑以下属性:

object numLock = new object();
public int Num
{
   get
   {
      Lock(numLock)
      {
        return num;
      }
   }
   set
   {
      Lock(numLock)
      {
        num = value;
      }
   }
}

什么是最快的方式来改变这一点,以允许多个读者或一个作家。请注意,需要更改的代码包含数百个类似的属性。因此,我正在寻找一个简单的解决方案,以快速可靠的方式转换这些属性中的锁定机制

你试过什么?很明显,你知道正确的类型,你没有尝试过使用它吗?如果是这样的话,您对这些解决方案有什么问题?顺便说一句,这样的锁不太可能有用,尽管如果没有更多信息,我们无法确定。如果你有很多属性在做这件事,这对我来说意味着你认为你得到的保护比你实际得到的保护要多。这种锁定没有任何作用,int已经是原子的了。只需完全删除它。@HansPassant至少需要一个易失性字段。在这种情况下,
ReaderWriterLock
甚至
ReaderWriterLockSlim
都比普通的
锁要慢。