DependentHandle Struktura

Definice

Představuje závislý popisovač uvolňování paměti. Popisovač bude podmíněně udržovat závislé instance objektu naživu, pokud je aktivní i instance cílového objektu, aniž by představoval 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í zachování cíle, pokud na ni neexistují žá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 nějaký jiný silný odkaz) na instanci závislého objektu B.

Typ DependentHandle není bezpečný pro přístup z více vláken a uživatelé zodpovídají za to, že Dispose() se nevolají souběžně s jinými rozhraními API. Výsledkem toho není nedefinované chování.

Funkce IsAllocated, Target, Dependenta TargetAndDependent vlastnosti jsou místo thread-safe a bezpečné použít, pokud Dispose() není souběžně vyvolána také.

Konstruktory

Name Description
DependentHandle(Object, Object)

Inicializuje novou instanci DependentHandle struktury se zadanými argumenty.

Vlastnosti

Name Description
Dependent

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

IsAllocated

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

Target

Získá nebo nastaví instanci cílového objektu pro aktuální popisovač. Cíl lze nastavit pouze na null hodnotu po DependentHandle vytvoření instance. To způsobí Dependent , že se začnou vracet null a budou mít nárok na shromažďování i v případě, že předchozí cíl zůstane 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 nullna , volání této metody vrátí buď null pro cíl i závislé, nebo vrátí obě předchozí hodnoty. Pokud Target by se v Dependent tomto scénáři používaly postupně, bylo by možné někdy úspěšně načíst předchozí cíl, ale pak se nepodaří získat závislý objekt.

Metody

Name Description
Dispose()

Provádí úlohy definované aplikací související s uvolněním, uvolněním nebo resetováním nespravovaných prostředků.

Platí pro