DependentHandle Structure

Définition

Représente un handle de garbage collection dépendant. Le handle conserve de manière conditionnelle une instance d’objet dépendante tant qu’une instance d’objet cible est également vivante, sans représenter une référence forte à l’instance cible.

public value class DependentHandle : IDisposable
public struct DependentHandle : IDisposable
type DependentHandle = struct
    interface IDisposable
Public Structure DependentHandle
Implements IDisposable
Héritage
DependentHandle
Implémente

Remarques

Une DependentHandle valeur avec une instance d’objet donnée comme cible n’entraîne pas la conservation de la cible s’il n’y a pas d’autres références fortes à celle-ci, mais elle le fait pour l’instance d’objet dépendante tant que la cible est vivante.

L’utilisation de ce type équivaut conceptuellement à avoir une référence faible à une instance d’objet cible donnée A, avec cet objet ayant un champ ou une propriété (ou une autre référence forte) à une instance d’objet dépendante B.

Le DependentHandle type n’est pas thread-safe et les consommateurs sont responsables de s’assurer qu’ils Dispose() ne sont pas appelés simultanément avec d’autres API. Le fait de ne pas le faire entraîne un comportement non défini.

Les IsAllocatedpropriétés et les TargetAndDependent TargetDependentpropriétés sont plutôt thread-safe et sécurisées à utiliser si Dispose() elles ne sont pas appelées simultanément.

Constructeurs

DependentHandle(Object, Object)

Initialise une nouvelle instance du DependentHandle struct avec les arguments spécifiés.

Propriétés

Dependent

Obtient ou définit l’instance d’objet dépendante pour le handle actuel.

IsAllocated

Obtient une valeur indiquant si cette instance a été construite avec DependentHandle(Object, Object) et n’a pas encore été supprimée.

Target

Obtient ou définit l’instance d’objet cible pour le handle actuel. La cible ne peut être définie que sur une null valeur une fois l’instance DependentHandle créée. Cela entraîne Dependent également le retour null et devient éligible à la collecte même si la cible précédente est toujours vivante.

TargetAndDependent

Obtient les valeurs des deux Target et Dependent (si disponible) en tant qu’opération atomique. Autrement dit, même si Target elle est définie nullsimultanément sur , l’appel de cette méthode retourne null à la fois pour la cible et la dépendance, ou retourne les deux valeurs précédentes. Si Target et Dependent ont été utilisés de manière séquentielle dans ce scénario, il est possible parfois de récupérer correctement la cible précédente, mais ne parvient pas à obtenir la dépendance.

Méthodes

Dispose()

Exécute les tâches définies par l'application associées à la libération ou à la redéfinition des ressources non managées.

S’applique à