GCHandleType 列舉

定義

表示類型可以配置的句柄 GCHandle 類型。

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

欄位

名稱 Description
Normal 2

這個控制代碼型別表示不透明的控制代碼,意指您無法透過控制代碼解析固定物件的位址。 您可以使用這個型別來追蹤物件,避免它被記憶體回收行程回收。 當 Unmanaged 用戶端持有 Managed 物件的唯一參考,而且參考無法從記憶體回收行程偵測時,這個列舉成員就很有用。

Pinned 3

這個控制代碼型別類似於 Normal,但是讓 Pin 物件的位址可以被取得。 這會避免記憶體回收行程移動物件,並因而減低記憶體回收行程的效能。 使用 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

另請參閱