Нужно ли, чтобы это поле было изменчивым?

У меня есть поток, который вращается до тех пор, пока int, измененный другим потоком, не станет определенным значением.

int cur = this.m_cur;
while (cur > this.Max)
{
    // spin until cur is <= max
    cur = this.m_cur; 
}

Должен ли this.m _cur быть объявлен volatile, чтобы это работало? Возможно ли, что это будет крутиться вечно из-за оптимизации компилятора?

9
задан svick 25 April 2012 в 00:24
поделиться