参照には、32ビットプロセッサでは4バイト、64ビットプロセッサでは8バイトのメモリが必要であることが知られています。従って、プロセッサは、機械の自然語サイズの増分でメモリへの単一の読み書きが原子的に実行されることを保証する。 Interlocked.ExchangeがInt32に対してと参照型のために必要とされる理由参照とInt32の更新にInterlocked.Exchangeを使用する
public static int Exchange(
ref int location1,
int value
)
と
public static T Exchange<T>(
ref T location1,
T value
)
where T : class
だから、質問は次のとおりです。一方 インタロッククラスの2つの方法があるのですか? アトミックなので単純な代入だけで安全に行うことはできませんでしたか?
ありがとうございました。今は十分明確です。 –
これは明らかに1年後ですが、可能であれば、これを見直してもらえますか?このウェブサイトhttp://igoro.com/archive/volatile-keyword-in-c-memory-model-explained/は、C#のすべての書き込みがすでに揮発性であることを暗示しているようです。 – user981225