次のコードサンプルでは、最新の値が確実に読み取られるようにするために、 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が最新の値を読み取るようにするにはどうすればよいですか?(最近の値が実際にプロセッサのキャッシュに保存されていることを確認したい)[ロックを使用せずに]