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): статических полей относительно потока и слотов данных.

  • Статические поля относительно потока — это static поля (Sharedполя в Visual Basic), помеченные атрибутомThreadStaticAttribute. Они обеспечивают лучшую производительность, чем слоты данных, и обеспечивают проверку типов во время компиляции.

  • Слоты данных медленнее и неловко использовать, чем статические поля, связанные с потоком. Кроме того, данные хранятся в виде типа Object, поэтому перед использованием необходимо привести их к нужному типу. Однако слоты данных можно использовать, если во время компиляции недостаточно информации для выделения статических полей.

Дополнительные сведения об использовании TLS см. в разделе "Локальный поток" служба хранилища: Thread-Relative статических полей и слотов данных.

Аналогичным образом, платформа .NET Framework предоставляет два механизма использования локального хранилища контекста: контекстно-относительные статические поля и слоты данных. Статические поля относительно контекста — это статические поля, помеченные атрибутом ContextStaticAttribute . Компромиссы между использованием этих двух механизмов аналогичны компромиссам между использованием статических полей и слотов данных относительно потока.

Структура LocalDataStoreSlot служит механизмом памяти локального хранилища, который потоки и контексты могут использовать для хранения данных, зависящих от потока и контекста, соответственно. Среда CLR выделяет массив хранилища данных с несколькими слотами для каждого процесса при его создании. Поток или контекст вызывает различные функции для выделения слота данных в хранилище данных, хранения и извлечения значения данных в слоте, а также для освобождения слота данных для повторного использования после истечения срока действия потока или объекта контекста.

Слоты данных уникальны для каждого потока или контекста; их значения не являются общими для потоков или контекстных объектов. Слоты данных можно выделить по имени или по номеру индекса.

Дополнительные сведения о хранении локальных данных см. в разделе Thread или Context. Класс LocalDataStoreSlot используется с такими методами, как Thread.AllocateNamedDataSlot, Context.AllocateNamedDataSlotиThread.GetDataContext.GetData; у него нет собственных методов, которые необходимо использовать.

Методы

Equals(Object)

Определяет, равен ли указанный объект текущему объекту.

(Унаследовано от Object)
Finalize()

Обеспечивает освобождение ресурсов и выполнение других завершающих операций, когда сборщик мусора восстанавливает объект LocalDataStoreSlot.

GetHashCode()

Служит хэш-функцией по умолчанию.

(Унаследовано от Object)
GetType()

Возвращает объект Type для текущего экземпляра.

(Унаследовано от Object)
MemberwiseClone()

Создает неполную копию текущего объекта Object.

(Унаследовано от Object)
ToString()

Возвращает строку, представляющую текущий объект.

(Унаследовано от Object)

Применяется к

См. также раздел