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 active, 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 fera pour l’instance d’objet dépendante tant que la cible est active.

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. Cela entraîne un comportement non défini.

Les propriétés , et DependentTargetAndDependent les Targetpropriétés sont à la IsAllocatedplace thread-safe et sécurisées à utiliser si Dispose() elles ne sont pas également appelées simultanément.

Constructeurs

Nom Description
DependentHandle(Object, Object)

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

Propriétés

Nom Description
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înera Dependent également le retour null et deviendra éligible à la collecte même si la cible précédente est toujours active.

TargetAndDependent

Obtient les valeurs des deux Target et Dependent (le cas échéant) 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 séquentiellement dans ce scénario à la place, il serait possible de récupérer parfois correctement la cible précédente, mais de ne pas obtenir la dépendance.

Méthodes

Nom Description
Dispose()

Effectue des tâches définies par l’application associées à la libération, à la libération ou à la réinitialisation des ressources non managées.

S’applique à