Вопрос про Thread.MemoryBarrier
От: Коваленко Дмитрий Россия http://www.ibprovider.com
Дата: 24.09.11 05:23
Оценка:
Привет всем.

Есть два метода
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

?
Заранее благодарю за ответы
-- Пользователи не приняли программу. Всех пришлось уничтожить. --
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.