言語

LocalDataStoreSlot クラス

定義

ローカル データを格納するメモリ スロットをカプセル化します。 このクラスは継承できません。

public ref class LocalDataStoreSlot sealed
public sealed class LocalDataStoreSlot
[System.Runtime.InteropServices.ComVisible(true)]
public sealed class LocalDataStoreSlot
type LocalDataStoreSlot = class
[<System.Runtime.InteropServices.ComVisible(true)>]
type LocalDataStoreSlot = class
Public NotInheritable Class LocalDataStoreSlot
継承
LocalDataStoreSlot
属性

注釈

.NET Framework には、スレッド ローカル ストレージ (TLS) を使用するための 2 つのメカニズム (スレッド相対静的フィールドとデータ スロット) が用意されています。

  • スレッド相対静的フィールドはstatic フィールド (Visual Basic の Shared フィールド) であり、ThreadStaticAttribute 属性でマークされます。 データ スロットよりも優れたパフォーマンスを提供し、コンパイル時の型チェックを有効にします。

  • データ スロットは、スレッド相対静的フィールドよりも低速で使いにくいです。 また、データは型 Objectとして格納されるため、使用する前に正しい型にキャストする必要があります。 ただし、コンパイル時に静的フィールドを割り当てるのに十分な情報がない場合は、データ スロットを使用できます。

TLS の使用の詳細については、「 スレッド ローカル ストレージ: 静的フィールドとデータ スロットの Thread-Relative」を参照してください。

同様に、.NET Framework には、コンテキスト ローカル ストレージを使用するための 2 つのメカニズム (コンテキスト相対静的フィールドとデータ スロット) が用意されています。 コンテキスト相対静的フィールドは、 ContextStaticAttribute 属性でマークされている静的フィールドです。 これら 2 つのメカニズムを使用する場合のトレードオフは、スレッド相対静的フィールドとデータ スロットの使用のトレードオフに似ています。

LocalDataStoreSlot構造体は、スレッドとコンテキストがそれぞれスレッド固有のデータとコンテキスト固有のデータを格納するために使用できるローカル ストア メモリ メカニズムとして機能します。 共通言語ランタイムは、作成時に各プロセスにマルチスロット データ ストア配列を割り当てます。 スレッドまたはコンテキストは、さまざまな関数を呼び出して、データ ストアにデータ スロットを割り当て、スロットにデータ値を格納および取得し、スレッドまたはコンテキスト オブジェクトの有効期限が切れた後に再利用できるようにデータ スロットを解放します。

データ スロットはスレッドまたはコンテキストごとに一意です。これらの値はスレッドオブジェクトまたはコンテキストオブジェクト間で共有されません。 データ スロットは、名前またはインデックス番号で割り当てられます。

ローカル データの格納の詳細については、「 Thread または Context」を参照してください。 LocalDataStoreSlot クラスは、Thread.AllocateNamedDataSlotContext.AllocateNamedDataSlotThread.GetDataContext.GetDataなどのメソッドで使用されます。使用する必要がある独自のメソッドはありません。

メソッド

名前 説明
Equals(Object)

指定したオブジェクトが現在のオブジェクトと等しいかどうかを判断します。

(継承元 Object)
Finalize()

ガベージ コレクターが LocalDataStoreSlot オブジェクトを再利用するときに、リソースが解放され、その他のクリーンアップ操作が実行されるようにします。

GetHashCode()

既定のハッシュ関数として機能します。

(継承元 Object)
GetType()

現在のインスタンスの Type を取得します。

(継承元 Object)
MemberwiseClone()

現在の Objectの簡易コピーを作成します。

(継承元 Object)
ToString()

現在のオブジェクトを表す文字列を返します。

(継承元 Object)

適用対象

こちらもご覧ください