GCHandleType Enumeration

Definition

Stellt die Typen von Handles dar, die der GCHandle Typ 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

Normal 2

Dieser Handletyp stellt ein nicht transparentes Handle dar, d. h., dass die Adresse des fixierten Objekts nicht über das Handle aufgelöst werden kann. Sie können mit diesem Typ ein Objekt überwachen und verhindern, dass es vom Garbage Collector erfasst wird. Dieser Enumerationsmember ist nützlich, wenn ein nicht verwalteter Client den einzigen Verweis auf ein verwaltetes Objekt enthält, der vom Garbage Collector nicht erkannt werden kann.

Pinned 3

Dieser Handletyp ähnelt Normal, lässt jedoch das Erfassen der Adresse des fixierten Objekts zu. Andernfalls wird das Verschieben des Objekts durch den Garbage Collector verhindert und somit dessen Effizienz verringert. Verwenden Sie die Free()-Methode, um das reservierte Handle so bald wie möglich freizugeben.

Weak 0

Dieser Handletyp wird zum Überwachen eines Objekts verwendet, lässt jedoch das Sammeln zu. Beim Sammeln eines Objekts wird der Inhalt von GCHandle auf 0 festgelegt. Weak-Verweise werden vor dem Ausführen des Finalizers auf 0 festgelegt. Selbst wenn der Finalizer das Objekt wieder zugänglich macht, ist der Weak-Verweis immer noch auf 0 festgelegt.

WeakTrackResurrection 1

Dieser Handletyp ähnelt Weak, das Handle wird jedoch nicht auf 0 festgelegt, wenn das Objekt während der Finalisierung wieder zugänglich gemacht wird.

Gilt für:

Weitere Informationen