2011-08-09 13 views
3

簡単な質問... 1つのリファレンスメンバを含むC#構造体があるとします。この構造体のアサインメントは.NETでアトミックですか?私は構造体で全体を包むことはどんな違いがあれば、昔ながらの参照割り当ては、単なる好奇心アトミックであることを知っているリファレンスサイズの構造体のアトミック割り当て

struct ReadOnlyList<T> 
{ 
    private List<T> list; 
    // other random functionality 
}; 

...

おかげ

答えて

6

12.5例:変数参照の不可分性

以下のデータ型の読み書きは、アトミックでなければなりません。bool、char、byte、sbyte、short、ushort、uint、int 、浮動小数点型、および参照型。加えて、前のリストの基になるタイプの列挙型の読み書きもアトミックでなければなりません。 long型、ulong型、double型、decimal型、ユーザー定義型などの他の型の読み書きは、アトミックである必要はありません。この目的のために設計されたライブラリ関数の他に、インクリメントまたはデクリメントの場合のような原子のリード・モディファイ・ライトの保証はありません。

唯一の参照型メンバーを持つ構造体のアトミック性は実装定義であり、それに頼るべきではありません。

+0

ありがとう、ちょうど私が知る必要があったもの:) – LorenVS

関連する問題