GCHandleType 列舉

定義

表示 GCHandle 類別可以配置的控制代碼的型別。

public enum class GCHandleType
public enum GCHandleType
[System.Serializable]
public enum GCHandleType
[System.Serializable]
[System.Runtime.InteropServices.ComVisible(true)]
public enum GCHandleType
type GCHandleType = 
[<System.Serializable>]
type GCHandleType = 
[<System.Serializable>]
[<System.Runtime.InteropServices.ComVisible(true)>]
type GCHandleType = 
Public Enum GCHandleType
繼承
GCHandleType
屬性

欄位

Normal 2

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

Pinned 3

這個控制代碼型別類似於 Normal,但是讓 Pin 物件的位址可以被取得。 這會避免記憶體回收行程移動物件,並因而減低記憶體回收行程的效能。 使用 Free() 方法儘快釋放配置的控制代碼。

Weak 0

這個控制代碼型別被用來追蹤物件,但允許物件被回收。 當收集某個物件時,會將 GCHandle 的內容歸零。 Weak 參考會先歸零後,完成項才會執行,所以即使完成項重新啟動該物件,Weak 參考仍然會歸零。

WeakTrackResurrection 1

這個控制代碼型別和 Weak 類似,但如果物件在結束期間重新恢復的話,控制代碼不會歸零。

適用於

另請參閱