09/08/30 10:25:00
>>696の記事の二重チェックロックなんだけど
if (_Value == null) {
lock (ValueLock) {
if (_Value == null) {
A temp = new A();
Thread.MemoryBarrier();
_Value = temp;
}
}
}
Return _Value;
これだと_Valueが更新される前にlockから抜ける可能性ない?
Thread.MemoryBarrier()するのは_Value = temp;の後じゃないの?