DependentHandle Struktura

Definicja

Reprezentuje zależne dojście odzyskiwania pamięci. Dojście będzie warunkowo utrzymywać w stanie aktywności wystąpienie obiektu zależnego tak długo, jak wystąpienie obiektu docelowego jest również aktywne, bez odzwierciedlania 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 wartości docelowej, jeśli nie ma do niego żadnych innych silnych odwołań, ale zrobi to dla wystąpienia obiektu zależnego, o ile element 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 konsumenci są odpowiedzialni za zapewnienie, że Dispose() nie jest wywoływana współbieżnie z innymi interfejsami API. Nie powoduje to niezdefiniowanego zachowania.

Właściwości IsAllocated, Target, Dependenti TargetAndDependent 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 dojścia.

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 dojścia. Obiekt docelowy null można ustawić na wartość tylko po utworzeniu DependentHandle wystąpienia. Spowoduje to Dependent również rozpoczęcie powrotu null i zakwalifikowanie się do kolekcji, nawet jeśli poprzedni cel jest nadal aktywny.

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 parametr jest jednocześnie ustawiony na nullwartość , wywołanie tej metody zwróci null zarówno wartość docelową, jak i zależną, lub zwróci obie poprzednie wartości. Gdyby Target w tym scenariuszu użyto metody i Dependent były używane sekwencyjnie, czasami możliwe byłoby pomyślne pobranie poprzedniego obiektu docelowego, ale nie można pobrać zależności.

Metody

Dispose()

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

Dotyczy