DependentHandle Структура

Определение

Представляет дескриптор зависимой сборки мусора. Дескриптор будет условно поддерживать зависимый экземпляр объекта до тех пор, пока целевой экземпляр объекта находится в живых, а не представляет сильную ссылку на целевой экземпляр.

public value class DependentHandle : IDisposable
public struct DependentHandle : IDisposable
type DependentHandle = struct
    interface IDisposable
Public Structure DependentHandle
Implements IDisposable
Наследование
DependentHandle
Реализации

Комментарии

DependentHandle Значение с заданным экземпляром объекта в качестве целевого объекта не приведет к тому, что целевой объект будет оставаться в живых, если к нему нет других надежных ссылок, но он сделает это для зависимого экземпляра объекта до тех пор, пока целевой объект жив.

Использование этого типа концептуально эквивалентно слабой ссылке на определенный экземпляр целевого объекта A, при этом этот объект имеет поле или свойство (или другую сильную ссылку) на зависимый экземпляр объекта B.

Тип DependentHandle не является потокобезопасными, и потребители отвечают за обеспечение того, что Dispose() он не вызывается одновременно с другими API. Это приводит к неопределенному поведению.

Свойства IsAllocated, TargetDependentа TargetAndDependent также являются потокобезопасными и безопасными для использования, если Dispose() они не вызываются одновременно.

Конструкторы

Имя Описание
DependentHandle(Object, Object)

Инициализирует новый экземпляр DependentHandle структуры с указанными аргументами.

Свойства

Имя Описание
Dependent

Возвращает или задает зависимый экземпляр объекта для текущего дескриптора.

IsAllocated

Возвращает значение, указывающее, был ли создан этот экземпляр и DependentHandle(Object, Object) еще не удален.

Target

Возвращает или задает целевой экземпляр объекта для текущего дескриптора. Целевой объект можно задать null только после создания экземпляра DependentHandle . Это приведет Dependent к тому, что вы вернетесь null , а также получите право на коллекцию, даже если предыдущий целевой объект по-прежнему жив.

TargetAndDependent

Возвращает значения обоих Target и Dependent (если они доступны) в виде атомарной операции. То есть, даже если Target одновременно задано nullзначение, вызывая этот метод, возвращается null как целевой, так и зависимый или возвращает оба предыдущих значения. Если Target и Dependent использовались последовательно в этом сценарии, иногда можно было бы успешно получить предыдущий целевой объект, но затем не получить зависимый объект.

Методы

Имя Описание
Dispose()

Выполняет определяемые приложением задачи, связанные с освобождением, освобождением или сбросом неуправляемых ресурсов.

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