为什么Thread.VolatileRead on string不能编译

时间:2012-07-20 08:44:23

标签: c# multithreading volatile

class CFoo 
{
       private string _filePathFormatString;

       public string Foo()
       {
            System.Threading.Thread.VolatileRead(ref _filePathFormatString);
            ...
       }   
}

string是object,为什么这个VolatileRead不能编译? 我认为它应该匹配VolatileRead(ref object)签名。

1 个答案:

答案 0 :(得分:1)

如果使用" ref"传递参数,则形式参数和实际参数的类型必须完全相同。在C#中。因此您可以将字段更改为对象类型。第二种方法可能是使用ReaderWriteLockSlim而不是易失性读取。