情報
要求されたトピックは次のとおりです。しかし、このトピックはこのライブラリには含まれていません。

ThreadStaticAttribute クラス

2013/12/12

静的フィールドの値がスレッドごとに一意であることを示します。

System.Object
  System.Attribute
    System.ThreadStaticAttribute

Namespace:  System
アセンブリ:  mscorlib (mscorlib.dll 内)

[AttributeUsageAttribute(AttributeTargets.Field, Inherited = false)]
public class ThreadStaticAttribute : Attribute

ThreadStaticAttribute 型で公開されるメンバーは以下のとおりです。

  名前説明
パブリック メソッドThreadStaticAttributeThreadStaticAttribute クラスの新しいインスタンスを初期化します。
このページのトップへ

  名前説明
パブリック メソッドEqualsインフラストラクチャ。 対象のインスタンスが、指定したオブジェクトに等しいかどうかを示す値を返します。 (Attribute から継承されます。)
プロテクト メソッドFinalizeObject がガベージ コレクションで再利用される前に、Object がリソースを解放して他のクリーンアップ操作を実行できるようにします。 (Object から継承されます。)
パブリック メソッドGetHashCodeこのインスタンスのハッシュ コードを返します。 (Attribute から継承されます。)
パブリック メソッドGetType現在のインスタンスの Type を取得します。 (Object から継承されます。)
パブリック メソッドMatch派生クラス内でオーバーライドされたときに、指定したオブジェクトとこのインスタンスが等しいかどうかを示す値を返します。 (Attribute から継承されます。)
プロテクト メソッドMemberwiseClone現在の Object の簡易コピーを作成します。 (Object から継承されます。)
パブリック メソッドToString現在のオブジェクトを表す文字列を返します。 (Object から継承されます。)
このページのトップへ

ThreadStaticAttribute でマークした static フィールド (Visual Basic の場合は Shared) は、複数のスレッド間で共有されません。実行中の各スレッドは、そのフィールドのインスタンスを個別に持ち、そのフィールドに対して独自に値を設定および取得します。このフィールドに別のスレッドからアクセスすると、フィールドには別の値が格納されます。

メモメモ:

ThreadStaticAttribute でマークしたフィールドの初期値を指定しないでください。このような初期化は、クラスのコンストラクターの実行時に一度だけ行われるもので、関係するスレッドは 1 つだけです。初期値を指定しなければ、フィールドが、値型の場合はその既定値に、参照型の場合は null (Visual Basic の場合は Nothing) に初期化されることを前提にできます。

この属性はそのまま使用し、そこから他の属性を派生させないようにしてください。ThreadStaticAttribute 構文の例を次に示します。

[ThreadStatic]
static int value;

バージョンについてのメモ

Windows Phone

ThreadStaticAttribute は Windows Phone ではサポートされていません。

Windows Phone OS

サポート: 8.0, 7.1, 7.0

この型のすべてのパブリック static (Visual Basic では Shared) メンバーは、スレッド セーフです。インスタンス メンバーの場合は、スレッド セーフであるとは限りません。

表示: