Поделиться через


GCHandleType Перечисление

Определение

Представляет типы дескрипторов, которые GCHandle может выделить тип.

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
Наследование
GCHandleType
Атрибуты

Поля

Normal 2

Этот тип дескриптора предоставляет непрозрачный дескриптор, то есть адрес закрепленного объекта, используемый дескриптором, нельзя разрешить с помощью дескриптора. Этот тип можно использовать для отслеживания объекта и предотвращения его уничтожения сборщиком мусора. Этот член перечисления используется, когда неуправляемый клиент содержит только одну ссылку на управляемый объект, которую не может обнаружить сборщик мусора.

Pinned 3

Этот тип дескриптора аналогичен Normal, но он позволяет работать с адресом закрепленного объекта. Это не позволяет сборщику мусора перемещать объект. В результате эффективность сборщика мусора снижается. Для максимально быстрого освобождения выделенного дескриптора следует использовать метод Free().

Weak 0

Этот тип дескриптора используется для отслеживания объекта, но позволяет выполнять его сбор. При сборе объекта содержимое объекта GCHandle обнуляется. Перед запуском метода завершения ссылки Weak обнуляются, поэтому даже если метод завершения восстановит объект, ссылка Weak остается обнуленной.

WeakTrackResurrection 1

Этот тип дескриптора аналогичен Weak, но дескриптор не обнуляется при восстановлении объекта в процессе завершения.

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

См. также раздел