DependentHandle Struktura

Definicja

Reprezentuje zależny uchwyt odzyskiwania pamięci. Dojście będzie warunkowo utrzymywać wystąpienie obiektu zależnego tak długo, jak wystąpienie obiektu docelowego jest również aktywne, bez reprezentowania silnego odwołania do wystąpienia docelowego.

public value class DependentHandle : IDisposable
public struct DependentHandle : IDisposable
type DependentHandle = struct
    interface IDisposable
Public Structure DependentHandle
Implements IDisposable
Dziedziczenie
DependentHandle
Implementuje

Uwagi

DependentHandle Wartość z danym wystąpieniem obiektu jako obiektem docelowym nie spowoduje utrzymania obiektu docelowego, jeśli nie ma do niego żadnych innych silnych odwołań, ale zrobi to dla wystąpienia obiektu zależnego tak długo, jak obiekt docelowy jest aktywny.

Użycie tego typu jest koncepcyjnie równoważne ze słabym odwołaniem do danego wystąpienia obiektu docelowego A, a ten obiekt ma pole lub właściwość (lub inne silne odwołanie) do wystąpienia obiektu zależnego B.

Typ DependentHandle nie jest bezpieczny wątkowo, a użytkownicy są odpowiedzialni za zapewnienie, że Dispose() nie jest wywoływany współbieżnie z innymi interfejsami API. Nie powoduje to niezdefiniowanego zachowania.

Właściwości IsAllocated, Target, i DependentTargetAndDependent są zamiast tego bezpieczne wątkowo i bezpieczne do użycia, jeśli Dispose() nie są również wywoływane współbieżnie.

Konstruktory

DependentHandle(Object, Object)

Inicjuje DependentHandle nowe wystąpienie struktury z określonymi argumentami.

Właściwości

Dependent

Pobiera lub ustawia wystąpienie obiektu zależnego dla bieżącego uchwytu.

IsAllocated

Pobiera wartość wskazującą, czy to wystąpienie zostało skonstruowane z elementem DependentHandle(Object, Object) i nie zostało jeszcze usunięte.

Target

Pobiera lub ustawia wystąpienie obiektu docelowego dla bieżącego uchwytu. Element docelowy można ustawić tylko na null wartość po utworzeniu DependentHandle wystąpienia. Spowoduje to Dependent również rozpoczęcie powrotu null i zakwalifikowanie się do kolekcji, nawet jeśli poprzedni cel nadal żyje.

TargetAndDependent

Pobiera wartości zarówno, Target jak i Dependent (jeśli są dostępne) jako operację niepodzielna. Oznacza to, że nawet jeśli Target jest jednocześnie ustawiona na nullwartość , wywołanie tej metody zwróci null zarówno wartość docelową, jak i zależną lub zwróci obie poprzednie wartości. Jeśli Target i Dependent zostały użyte sekwencyjnie w tym scenariuszu, czasami możliwe byłoby pomyślne pobranie poprzedniego elementu docelowego, ale wtedy nie można uzyskać zależności.

Metody

Dispose()

Wykonuje zdefiniowane przez aplikację zadania skojarzone ze zwalnianiem lub resetowaniem zasobów niezarządzanych.

Dotyczy