DependentHandle Struktura

Definice

Představuje závislý úchyt pro uvolňování paměti. Obslužný rutina bude podmíněně udržovat závislá instanci objektu naživu, pokud je také instance cílového objektu aktivní, aniž by představovala silný odkaz na cílovou instanci.

public value class DependentHandle : IDisposable
public struct DependentHandle : IDisposable
type DependentHandle = struct
    interface IDisposable
Public Structure DependentHandle
Implements IDisposable
Dědičnost
DependentHandle
Implementuje

Poznámky

DependentHandle Hodnota s danou instancí objektu jako cíl nezpůsobí udržování cíle naživu, pokud na ni nejsou žádné další silné odkazy, ale provede to pro závislé instance objektu, pokud je cíl aktivní.

Použití tohoto typu je koncepčně ekvivalentní tomu, že má slabý odkaz na danou instanci cílového objektu A s tímto objektem, který má pole nebo vlastnost (nebo jiný silný odkaz) na závislé instanci objektu B.

Typ DependentHandle není bezpečný pro vlákno a uživatelé zodpovídají za zajištění, že Dispose() se nevolá souběžně s jinými rozhraními API. Výsledkem toho není nedefinované chování.

Funkce IsAllocated, , DependentTargeta TargetAndDependent vlastnosti jsou místo toho bezpečné pro vlákno a bezpečné používat, pokud Dispose() není souběžně vyvolána také.

Konstruktory

DependentHandle(Object, Object)

Inicializuje novou instanci DependentHandle struktury se zadanými argumenty.

Vlastnosti

Dependent

Získá nebo nastaví závislé instance objektu pro aktuální popisovač.

IsAllocated

Získá hodnotu určující, zda byla tato instance vytvořena a DependentHandle(Object, Object) dosud nebyla odstraněna.

Target

Získá nebo nastaví cílovou instanci objektu pro aktuální popisovač. Cíl lze nastavit pouze na null hodnotu po DependentHandle vytvoření instance. To způsobí Dependent , že se také začne vracet null a stát se způsobilým pro kolekci i v případě, že předchozí cíl je stále naživu.

TargetAndDependent

Získá hodnoty obou Target i Dependent (pokud je k dispozici) jako atomická operace. To znamená, že i když Target je současně nastavena na null, volání této metody buď vrátí null pro cíl i závislé, nebo vrátí obě předchozí hodnoty. Pokud Target a Dependent byly použity postupně v tomto scénáři, bylo by možné někdy úspěšně načíst předchozí cíl, ale pak se nepodaří získat závislé.

Metody

Dispose()

Provede aplikací definované úlohy spojené s uvolněním nebo resetováním nespravovaných prostředků.

Platí pro