Привет всем.
Есть два метода
object m_Options;
string get_data()
{
var opt=m_Options;
Thread.MemoryBarrier();
if(opt==null)
return null;
return opt.ToString();
}//get_data
void set_data(object Options)
{
Interlocked.Exchange(ref m_Options,Options)
}
Я правильно понимаю, что вызов MemoryBarrier предотвращает возможность трансформации get_data (в процессе компиляции с оптимизацией) в код вида
string get_data()
{
if(m_Options==null)
return null;
return m_Options.ToString();
}//get_data
?
Заранее благодарю за ответы
-- Пользователи не приняли программу. Всех пришлось уничтожить. --