DependentHandle Struktur

Definition

Stellt einen abhängigen Garbage-Collection-Handle dar. Das Handle behält eine abhängige Objektinstanz bedingt bei, solange eine Zielobjektinstanz ebenfalls lebendig ist, ohne einen starken Verweis auf die Zielinstanz darzustellen.

public value class DependentHandle : IDisposable
public struct DependentHandle : IDisposable
type DependentHandle = struct
    interface IDisposable
Public Structure DependentHandle
Implements IDisposable
Vererbung
DependentHandle
Implementiert

Hinweise

Ein DependentHandle Wert mit einer bestimmten Objektinstanz als Ziel führt nicht dazu, dass das Ziel lebendig gehalten wird, wenn es keine anderen starken Verweise darauf gibt, dies jedoch für die abhängige Objektinstanz, solange das Ziel lebendig ist.

Die Verwendung dieses Typs entspricht konzeptionell dem Vorhandensein eines schwachen Verweises auf eine bestimmte Zielobjektinstanz A, wobei dieses Objekt ein Feld oder eine Eigenschaft (oder einen anderen starken Verweis) auf eine abhängige Objektinstanz B aufweist.

Der DependentHandle Typ ist nicht threadsicher, und Verbraucher sind dafür verantwortlich, sicherzustellen, dass er Dispose() nicht gleichzeitig mit anderen APIs aufgerufen wird. Dies führt zu nicht definierten Verhaltensweisen.

Die IsAllocatedEigenschaften Target, , Dependentund TargetAndDependent die Eigenschaften sind stattdessen threadsicher und sicher zu verwenden, wenn Dispose() sie nicht gleichzeitig aufgerufen werden.

Konstruktoren

DependentHandle(Object, Object)

Initialisiert eine neue Instanz der DependentHandle Struktur mit den angegebenen Argumenten.

Eigenschaften

Dependent

Dient zum Abrufen oder Festlegen der abhängigen Objektinstanz für den aktuellen Handle.

IsAllocated

Ruft einen Wert ab, der angibt, ob diese Instanz erstellt DependentHandle(Object, Object) wurde und noch nicht verworfen wurde.

Target

Dient zum Abrufen oder Festlegen der Zielobjektinstanz für den aktuellen Handle. Das Ziel kann nur auf einen null Wert festgelegt werden, nachdem die DependentHandle Instanz erstellt wurde. Dies führt Dependent dazu, dass auch die Rückgabe null beginnt und zur Sammlung berechtigt wird, auch wenn das vorherige Ziel noch lebendig ist.

TargetAndDependent

Ruft die Werte sowohl Target als Dependent auch (sofern verfügbar) als Atomvorgang ab. Das heißt, auch wenn Target gleichzeitig festgelegt nullwird, wird das Aufrufen dieser Methode entweder für ziel- und abhängige Werte zurückgegeben null oder beide vorherigen Werte zurückgegeben. Wenn Target und Dependent stattdessen sequenziell in diesem Szenario verwendet wurde, wäre es möglich, manchmal erfolgreich das vorherige Ziel abzurufen, aber dann nicht die abhängige.

Methoden

Dispose()

Führt anwendungsspezifische Aufgaben durch, die mit der Freigabe, der Zurückgabe oder dem Zurücksetzen von nicht verwalteten Ressourcen zusammenhängen.

Gilt für