"A reference to a volatile field will not be treated as volatile" implications
.net, c#, multithreading, volatile
Solution
You are not doing anything wrong. According to the documentation:
A volatile field should not normally be passed using a ref or out parameter, since it will not be treated as volatile within the scope of the function. There are exceptions to this, such as when calling an interlocked API.
Problem
The following code ``` using System.Threading; class Test { volatile int counter = 0; public void Increment() { Interlocked.Increment(ref counter); } } ``` Raises the following compiler warning: ``` "A reference to a volatile field will not be treated as volatile" ``` Am I doing something wrong here to raise this warning? Why does the compiler me warn about this?