GCHandleType GCHandleType GCHandleType GCHandleType Enum

Definizione

Rappresenta i tipi di handle che la classe GCHandle può allocare.Represents the types of handles the GCHandle class can allocate.

public enum class GCHandleType
[System.Runtime.InteropServices.ComVisible(true)]
[System.Serializable]
public enum GCHandleType
type GCHandleType = 
Public Enum GCHandleType
Ereditarietà
Attributi

Campi

Normal Normal Normal Normal 2

Questo tipo di handle rappresenta un handle opaco, ovvero non è possibile risolvere l'indirizzo dell'oggetto bloccato tramite l'handle.This handle type represents an opaque handle, meaning you cannot resolve the address of the pinned object through the handle. È possibile utilizzare questo tipo per controllare un oggetto e impedire che sia sottoposto alla procedura di Garbage Collection.You can use this type to track an object and prevent its collection by the garbage collector. 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.This enumeration member is useful when an unmanaged client holds the only reference, which is undetectable from the garbage collector, to a managed object.

Pinned Pinned Pinned Pinned 3

Questo tipo di handle è simile a Normal, ma consente di recuperare l'indirizzo dell'oggetto bloccato.This handle type is similar to Normal, but allows the address of the pinned object to be taken. In questo modo si evita che l'oggetto venga spostato tramite la procedura di Garbage Collection, riducendo così l'efficienza della procedura stessa.This prevents the garbage collector from moving the object and hence undermines the efficiency of the garbage collector. Utilizzare il metodo Free() per liberare l'handle allocato non appena possibile.Use the Free() method to free the allocated handle as soon as possible.

Weak Weak Weak Weak 0

Questo tipo di handle è utilizzato per controllare un oggetto, sebbene consenta di raccoglierlo.This handle type is used to track an object, but allow it to be collected. Quando un oggetto viene raccolto, il contenuto di GCHandle viene azzerato.When an object is collected, the contents of the GCHandle are zeroed. 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.Weak references are zeroed before the finalizer runs, so even if the finalizer resurrects the object, the Weak reference is still zeroed.

WeakTrackResurrection WeakTrackResurrection WeakTrackResurrection WeakTrackResurrection 1

Questo tipo di handle è simile a Weak ma l'handle non viene azzerato se l'oggetto viene ripristinato durante la finalizzazione.This handle type is similar to Weak, but the handle is not zeroed if the object is resurrected during finalization.

Si applica a

Vedi anche