GCHandleType GCHandleType GCHandleType GCHandleType Enum

Определение

Предоставляет типы дескрипторов, которые могут быть выделены классом GCHandle.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
Наследование
Атрибуты

Поля

Normal Normal Normal Normal 2

Этот тип дескриптора предоставляет непрозрачный дескриптор, то есть адрес закрепленного объекта, используемый дескриптором, нельзя разрешить с помощью дескриптора.This handle type represents an opaque handle, meaning you cannot resolve the address of the pinned object through the handle. Этот тип можно использовать для отслеживания объекта и предотвращения его уничтожения сборщиком мусора.You can use this type to track an object and prevent its collection by the garbage collector. Этот член перечисления используется, когда неуправляемый клиент содержит только одну ссылку на управляемый объект, которую не может обнаружить сборщик мусора.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

Этот тип дескриптора аналогичен Normal, но он позволяет работать с адресом закрепленного объекта.This handle type is similar to Normal, but allows the address of the pinned object to be taken. Это не позволяет сборщику мусора перемещать объект. В результате эффективность сборщика мусора снижается.This prevents the garbage collector from moving the object and hence undermines the efficiency of the garbage collector. Для максимально быстрого освобождения выделенного дескриптора следует использовать метод Free().Use the Free() method to free the allocated handle as soon as possible.

Weak Weak Weak Weak 0

Этот тип дескриптора используется для отслеживания объекта, но позволяет выполнять его сбор.This handle type is used to track an object, but allow it to be collected. При сборе объекта содержимое объекта GCHandle обнуляется.When an object is collected, the contents of the GCHandle are zeroed. Перед запуском метода завершения ссылки Weak обнуляются, поэтому даже если метод завершения восстановит объект, ссылка Weak остается обнуленной.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

Этот тип дескриптора аналогичен Weak, но дескриптор не обнуляется при восстановлении объекта в процессе завершения.This handle type is similar to Weak, but the handle is not zeroed if the object is resurrected during finalization.

Применяется к

Дополнительно