GCHandleType 枚举

定义

表示类型可以分配的 GCHandle 句柄类型。

C#
public enum GCHandleType
C#
[System.Serializable]
public enum GCHandleType
C#
[System.Serializable]
[System.Runtime.InteropServices.ComVisible(true)]
public enum GCHandleType
继承
GCHandleType
属性

字段

名称 说明
Normal 2

此句柄类型表示不透明句柄,这意味着无法通过此句柄解析固定对象的地址。 可以使用此类型跟踪对象,并防止它被垃圾回收器回收。 当非托管客户端持有对托管对象的唯一引用(从垃圾回收器检测不到该引用)时,此枚举成员很有用。

Pinned 3

此句柄类型类似于 Normal,但允许使用固定对象的地址。 这将防止垃圾回收器移动对象,因此将降低垃圾回收器的效率。 使用 Free() 方法可尽快释放已分配的句柄。

Weak 0

此句柄类型用于跟踪对象,但允许回收该对象。 当回收某个对象时,GCHandle 的内容归零。 在终结器运行之前,Weak 引用归零,因此即使终结器使该对象复活,Weak 引用仍然是归零的。

WeakTrackResurrection 1

该句柄类型类似于 Weak,但如果对象在终结过程中复活,此句柄不归零。

适用于

产品 版本
.NET Core 1.0, Core 1.1, Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9
.NET Framework 1.1, 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 1.1, 1.2, 1.3, 1.4, 1.5, 1.6, 2.0, 2.1
UWP 10.0

另请参阅