1
我正在使用Volatile关键字,但它的行为与预期的不同。在C#中使用Volatile关键字
这里是我的代码
private static volatile int _N = 0;
var up = Task.Run(() =>
{
for (int i = 0; i < 1000000; i++)
_N++;
});
for (int i = 0; i < 1000000; i++)
_N--;
up.Wait();
Console.WriteLine(_N);
_N是一个类变量。
我每次得到的是不同的数字,就好像关键字volatile不被使用一样。 这是关键字的正确行为吗?
你是否假设'volatile'关键字的功能与'Volatile.Write'相同? –