GCHandleType Výčet

Definice

Představuje typy popisovačů, které GCHandle třída může přidělit.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
Dědičnost
GCHandleType
Atributy

Pole

Normal 2

Tento typ obslužné rutiny představuje neprůhledný popisovač, což znamená, že nelze přeložit adresu připnutého objektu prostřednictvím popisovače.This handle type represents an opaque handle, meaning you cannot resolve the address of the pinned object through the handle. Tento typ můžete použít ke sledování objektu a zabránění jeho shromažďování systémem uvolňování paměti.You can use this type to track an object and prevent its collection by the garbage collector. Tento člen výčtu je užitečný v případě, že nespravovaný klient obsahuje jediný odkaz, který je nezjistitelný ze systému uvolňování paměti, na spravovaný objekt.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 3

Tento typ popisovače je podobný Normal, ale umožňuje, aby byla adresa připnutého objektu provedena.This handle type is similar to Normal, but allows the address of the pinned object to be taken. Tím zabráníte systému uvolňování paměti v přesunutí objektu a tím i zvýšení efektivity systému uvolňování paměti.This prevents the garbage collector from moving the object and hence undermines the efficiency of the garbage collector. Free() Použijte metodu pro uvolnění přiděleného popisovače co nejrychleji.Use the Free() method to free the allocated handle as soon as possible.

Weak 0

Tento typ obslužné rutiny se používá ke sledování objektu, ale umožňuje jeho shromažďování.This handle type is used to track an object, but allow it to be collected. Při shromáždění objektu se obsah GCHandle objektu odpočítá.When an object is collected, the contents of the GCHandle are zeroed. Weakodkazy jsou před spuštěním finalizační metody nulové, takže i když finalizační metoda resurrects objekt, Weak odkaz je stále nula.Weak references are zeroed before the finalizer runs, so even if the finalizer resurrects the object, the Weak reference is still zeroed.

WeakTrackResurrection 1

Tento typ obslužné rutiny je Weakpodobný, ale popisovač není nula, pokud je objekt během finalizace obnoven.This handle type is similar to Weak, but the handle is not zeroed if the object is resurrected during finalization.

Platí pro

Viz také