Share via


DependentHandle Structure

Définition

Représente un handle de garbage collection dépendant. Le handle maintient conditionnellement une instance d’objet dépendante en vie tant qu’une instance d’objet cible est également 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 un objet donné instance comme cible n’entraîne pas le maintien de la cible en vie s’il n’y a pas d’autres références fortes à celle-ci, mais elle le fait pour l’objet dépendant instance tant que la cible est vivante.

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

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

Les IsAllocatedpropriétés , Target, Dependentet TargetAndDependent sont plutôt thread-safe et fiables à utiliser si Dispose() n’est pas également appelé 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’objet dépendant instance 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’objet cible instance pour le handle actuel. La cible ne peut être définie sur une null valeur qu’une fois que le DependentHandle instance a été créé. En procédant ainsi, vous commencerez Dependent à revenir null et à devenir éligible à la collecte même si la cible précédente est toujours vivante.

TargetAndDependent

Obtient les valeurs de Target et Dependent (le cas échéant) en tant qu’opération atomique. Autrement dit, même si Target est simultanément défini sur , l’appel de nullcette méthode retourne null à la fois pour la cible et pour les dépendants, ou retourne les deux valeurs précédentes. Si Target et Dependent étaient utilisés séquentiellement dans ce scénario, il serait parfois possible de récupérer la cible précédente, mais d’échouer à obtenir le dépendant.

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 à