В следующем примере кода требуется ли барьер памяти в FuncA , чтобы обеспечить считывание наиболее актуального значения?
class Foo
{
DateTime m_bar;
void FuncA() // invoked by thread X
{
Thread.MemoryBarrier(); // is required?
Console.WriteLine(m_bar);
}
void FuncB() // invoked by thread Y
{
m_bar = DateTime.Now;
}
}
РЕДАКТИРОВАТЬ : Если нет, как я могу гарантировать, что FuncA будет считывать самое последнее значение? (Я хочу убедиться, что последнее значение действительно хранится в кэше процессора) [без использования блокировок]