Condividi tramite


GCHandleType Enumerazione

Definizione

Rappresenta i tipi di handle che il GCHandle tipo può allocare.

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
Ereditarietà
GCHandleType
Attributi

Campi

Normal 2

Questo tipo di handle rappresenta un handle opaco, ovvero non è possibile risolvere l'indirizzo dell'oggetto bloccato tramite l'handle. È possibile utilizzare questo tipo per controllare un oggetto e impedire che sia sottoposto alla procedura di Garbage Collection. Questo membro di enumerazione è utile quando un client non gestito contiene l'unico riferimento, non rilevabile dalla procedura di Garbage Collection, a un oggetto gestito.

Pinned 3

Questo tipo di handle è simile a Normal, ma consente di recuperare l'indirizzo dell'oggetto bloccato. In questo modo si evita che l'oggetto venga spostato tramite la procedura di Garbage Collection, riducendo così l'efficienza della procedura stessa. Utilizzare il metodo Free() per liberare l'handle allocato non appena possibile.

Weak 0

Questo tipo di handle è utilizzato per controllare un oggetto, sebbene consenta di raccoglierlo. Quando un oggetto viene raccolto, il contenuto di GCHandle viene azzerato. I riferimenti Weak vengono azzerati prima dell'esecuzione del finalizzatore, in modo che, anche se il finalizzatore recupera l'oggetto, il riferimento Weak rimane ugualmente azzerato.

WeakTrackResurrection 1

Questo tipo di handle è simile a Weak ma l'handle non viene azzerato se l'oggetto viene ripristinato durante la finalizzazione.

Si applica a

Vedi anche