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.AllocateNamedDataSlotThread.GetDataиContext.GetData; он не имеет собственных методов, которые необходимо использовать.

Методы

Имя Описание
Equals(Object)

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

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

Гарантирует, что ресурсы освобождены и другие операции очистки выполняются при освобождении LocalDataStoreSlot объекта сборщиком мусора.

GetHashCode()

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

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

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

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

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

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

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

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

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

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