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) :线程相对静态字段和数据槽。

  • 线程相对静态字段是staticVisual Basic) 中用ThreadStaticAttribute属性标记的字段 (Shared字段。 它们比数据槽提供更好的性能,并启用编译时类型检查。

  • 数据槽比线程相对静态字段更慢,更尴尬。 此外,数据存储为类型 Object,因此必须先将其强制转换为正确的类型,然后再使用它。 但是,如果在编译时没有足够的信息来分配静态字段,则可以使用数据槽。

有关使用 TLS 的详细信息,请参阅 线程本地存储:Thread-Relative静态字段和数据槽

同样,.NET Framework 提供了两种使用上下文本地存储的机制:上下文相对静态字段和数据槽。 上下文相对静态字段是用属性标记的 ContextStaticAttribute 静态字段。 使用这两种机制之间的权衡类似于使用线程相对静态字段和数据槽之间的权衡。

LocalDataStoreSlot 结构充当本地存储内存机制,线程和上下文可用于分别存储特定于线程的数据和特定于上下文的数据。 公共语言运行时在创建时将多槽数据存储数组分配给每个进程。 线程或上下文调用各种函数来分配数据存储中的数据槽、在槽中存储和检索数据值,并在线程或上下文对象过期后释放数据槽以供重复使用。

每个线程或上下文的数据槽是唯一的;它们的值在线程或上下文对象之间不共享。 数据槽可以按名称或索引号进行分配。

有关存储本地数据的详细信息,请参阅 ThreadContext。 该 LocalDataStoreSlot 类与方法(例如 Thread.AllocateNamedDataSlotContext.AllocateNamedDataSlotThread.GetData一起使用;它 Context.GetData没有任何需要使用的方法。

方法

Equals(Object)

确定指定对象是否等于当前对象。

(继承自 Object)
Finalize()

确保垃圾回收器回收 LocalDataStoreSlot 对象时释放资源并执行其他清理操作。

GetHashCode()

作为默认哈希函数。

(继承自 Object)
GetType()

获取当前实例的 Type

(继承自 Object)
MemberwiseClone()

创建当前 Object 的浅表副本。

(继承自 Object)
ToString()

返回表示当前对象的字符串。

(继承自 Object)

适用于

另请参阅