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
Атрибуты

Поля

Имя Значение Описание
Weak 0

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

WeakTrackResurrection 1

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

Normal 2

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

Pinned 3

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

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

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