Я использую ключевое слово Volatile, но он ведет себя как-то иначе, чем ожидалось.Использование ключевого слова Volatile в C#
Вот мой код
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'? –