DependentHandle Struct-datatyp

Definition

Representerar ett beroende skräpinsamlingshandtag. Handtaget håller villkorligt en beroende objektinstans vid liv så länge en målobjektinstans också är vid liv, utan att representera en stark referens till målinstansen.

public value class DependentHandle : IDisposable
public struct DependentHandle : IDisposable
type DependentHandle = struct
    interface IDisposable
Public Structure DependentHandle
Implements IDisposable
Arv
DependentHandle
Implementeringar

Kommentarer

Ett DependentHandle värde med en angiven objektinstans som mål gör inte att målet hålls vid liv om det inte finns några andra starka referenser till det, men det gör det för den beroende objektinstansen så länge målet är vid liv.

Att använda den här typen är begreppsmässigt likvärdigt med en svag referens till en viss målobjektinstans A, där objektet har ett fält eller en egenskap (eller någon annan stark referens) till en beroende objektinstans B.

Typen DependentHandle är inte trådsäker och konsumenterna ansvarar för att säkerställa att Dispose() den inte anropas samtidigt med andra API:er. Om du inte gör det resulterar det i odefinierat beteende.

Egenskaperna IsAllocated, Target, Dependent, och TargetAndDependent är i stället trådsäkra och säkra att använda om Dispose() de inte anropas samtidigt.

Konstruktorer

Name Description
DependentHandle(Object, Object)

Initierar en ny instans av DependentHandle structen med de angivna argumenten.

Egenskaper

Name Description
Dependent

Hämtar eller anger den beroende objektinstansen för det aktuella handtaget.

IsAllocated

Hämtar ett värde som anger om den här instansen har konstruerats med DependentHandle(Object, Object) och ännu inte har tagits bort.

Target

Hämtar eller anger målobjektinstansen för det aktuella handtaget. Målet kan bara anges till ett null värde när instansen DependentHandle har skapats. Dependent Om du gör det börjar du också återvända null och blir berättigad till insamling även om det tidigare målet fortfarande är vid liv.

TargetAndDependent

Hämtar värdena för både Target och Dependent (om tillgängligt) som en atomisk åtgärd. Det vill sa, även om Target det samtidigt är inställt på null, returnerar null anropande av den här metoden antingen för både mål och beroende, eller returnerar båda tidigare värden. Om Target och Dependent användes sekventiellt i det här scenariot i stället skulle det vara möjligt att ibland hämta det tidigare målet, men sedan misslyckas med att hämta beroendet.

Metoder

Name Description
Dispose()

Utför programdefinierade uppgifter som är associerade med att frigöra, frigöra eller återställa ohanterade resurser.

Gäller för