Tag: 内存障碍

为什么我们需要Thread.MemoryBarrier()?

在“C#4简介”中,作者表示这个类有时可以写0,没有MemoryBarrier ,虽然我不能在我的Core2Duo中重现: public class Foo { int _answer; bool _complete; public void A() { _answer = 123; //Thread.MemoryBarrier(); // Barrier 1 _complete = true; //Thread.MemoryBarrier(); // Barrier 2 } public void B() { //Thread.MemoryBarrier(); // Barrier 3 if (_complete) { //Thread.MemoryBarrier(); // Barrier 4 Console.WriteLine(_answer); } } } private static void ThreadInverteOrdemComandos() { Foo obj […]