2012-07-20 2 views
3
class CFoo 
{ 
     private string _filePathFormatString; 

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

문자열이 객체 인 이유는이 VolatileRead이 컴파일되지 않는 이유는 무엇입니까? 나는 VolatileRead(ref object) 서명과 일치해야한다고 생각합니다.문자열에서 Thread.VolatileRead가 컴파일되지 않는 이유

+1

왜 VolatileRead를 사용하고 있습니까? msdn은 "정상적인 상황에서는 C# 잠금 문 [...]이 더 쉬운 대안을 제공합니다"라고 말합니다. 왜 변수를 휘발성 변수로 정의해야합니까? – user287107

답변

1

C#에서 "ref"와 함께 매개 변수를 전달하면 형식 매개 변수와 실제 매개 변수의 형식이 동일해야합니다. 따라서 필드를 객체 유형으로 변경할 수 있습니다. 두 번째 방법은 휘발성 읽기 대신 ReaderWriteLockSlim을 사용하는 것입니다.

관련 문제