Condividi tramite


DependentHandle Struct

Definizione

Rappresenta un handle di Garbage Collection dipendente. L'handle mantiene attiva in modo condizionale un'istanza dipendente dell'oggetto finché un'istanza destinazione è attiva, senza rappresentare un riferimento sicuro all'istanza di destinazione.

public value class DependentHandle : IDisposable
public struct DependentHandle : IDisposable
type DependentHandle = struct
    interface IDisposable
Public Structure DependentHandle
Implements IDisposable
Ereditarietà
DependentHandle
Implementazioni

Commenti

Un DependentHandle valore con una determinata istanza dell'oggetto come destinazione non causerà la conservazione attiva della destinazione se non sono presenti altri riferimenti sicuri, ma questa operazione verrà eseguita per l'istanza dell'oggetto dipendente finché la destinazione è attiva.

L'uso di questo tipo equivale concettualmente ad avere un riferimento debole a una determinata istanza dell'oggetto di destinazione A, con tale oggetto con un campo o una proprietà (o un altro riferimento sicuro) a un'istanza di oggetto dipendente B.

Il DependentHandle tipo non è thread-safe e i consumer sono responsabili di garantire che Dispose() non venga chiamato simultaneamente con altre API. Questa operazione non comporta un comportamento indefinito.

Le IsAllocatedproprietà , Target, Dependente TargetAndDependent sono invece thread-safe e sicure da usare se Dispose() non vengono richiamate contemporaneamente.

Costruttori

DependentHandle(Object, Object)

Inizializza una nuova istanza dello DependentHandle struct con gli argomenti specificati.

Proprietà

Dependent

Ottiene o imposta l'istanza dell'oggetto dipendente per l'handle corrente.

IsAllocated

Ottiene un valore che indica se questa istanza è stata costruita con DependentHandle(Object, Object) e non è stata ancora eliminata.

Target

Ottiene o imposta l'istanza dell'oggetto di destinazione per l'handle corrente. La destinazione può essere impostata su un null valore solo dopo la creazione dell'istanza DependentHandle . In questo modo si inizierà Dependent anche a restituire null e a diventare idonei per la raccolta anche se la destinazione precedente è ancora attiva.

TargetAndDependent

Ottiene i valori di e TargetDependent (se disponibile) come operazione atomica. Ovvero, anche se Target è impostato contemporaneamente su , la chiamata a nullquesto metodo restituirà null sia per la destinazione che per quella dipendente oppure restituirà entrambi i valori precedenti. Se Target e Dependent sono stati usati in sequenza in questo scenario, sarebbe invece possibile recuperare correttamente la destinazione precedente, ma non ottenere il dipendente.

Metodi

Dispose()

Esegue attività definite dall'applicazione, come rilasciare o reimpostare risorse non gestite.

Si applica a