我正在使用 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。这是关键字的正确行为吗?