GCHandleType Enumeration

Definition

Stellt die Typen von Handles dar, die der GCHandle Typs zuordnen kann.

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
Vererbung
GCHandleType
Attribute

Felder

Name Wert Beschreibung
Weak 0

Dieser Handletyp wird verwendet, um ein Objekt nachzuverfolgen, aber es kann erfasst werden. Wenn ein Objekt erfasst wird, werden die Inhalte des GCHandle Objekts nulliert. Weak Verweise werden vor dem Ausführen des Finalizers nulliert. Auch wenn der Finalizer das Objekt wieder auferstanden, wird der Weak Verweis weiterhin nulliert.

WeakTrackResurrection 1

Dieser Handletyp ähnelt Weakdem, der Handle ist jedoch nicht null, wenn das Objekt während der Fertigstellung wieder auferstanden wird.

Normal 2

Dieser Handletyp stellt einen undurchsichtigen Handle dar, d. h., Sie können die Adresse des angehefteten Objekts nicht über das Handle auflösen. Sie können diesen Typ verwenden, um ein Objekt nachzuverfolgen und seine Sammlung durch den Garbage Collector zu verhindern. Dieses Enumerationselement ist nützlich, wenn ein nicht verwalteter Client den einzigen Verweis enthält, der vom Garbage Collector nicht erkennbar ist, auf ein verwaltetes Objekt.

Pinned 3

Dieser Handletyp ähnelt Normaldem, ermöglicht jedoch die Aufnahme der Adresse des angehefteten Objekts. Dadurch wird verhindert, dass der Garbage Collector das Objekt bewegt und dadurch die Effizienz des Garbage Collector beeinträchtigt. Verwenden Sie die Free() Methode, um den zugewiesenen Handle so schnell wie möglich frei zu geben.

Gilt für:

Weitere Informationen