DependentHandle Estrutura

Definição

Representa um handle dependente de recolha de lixo. O handle manterá condicionalmente uma instância de objeto dependente viva enquanto uma instância de objeto alvo também estiver viva, sem representar uma referência forte à instância alvo.

public value class DependentHandle : IDisposable
public struct DependentHandle : IDisposable
type DependentHandle = struct
    interface IDisposable
Public Structure DependentHandle
Implements IDisposable
Herança
DependentHandle
Implementações

Observações

Um DependentHandle valor com uma dada instância de objeto como alvo não fará com que o alvo seja mantido vivo se não houver outras referências fortes a ele, mas fará isso para a instância do objeto dependente enquanto o alvo estiver vivo.

Usar este tipo é conceptualmente equivalente a ter uma referência fraca a uma dada instância de objeto alvo A, com esse objeto a ter um campo ou propriedade (ou alguma outra referência forte) a uma instância de objeto dependente B.

O DependentHandle tipo não é seguro para threads, e os consumidores são responsáveis por garantir que não Dispose() é chamado em simultâneo com outras APIs. Não o fazer resulta num comportamento indefinido.

As IsAllocatedpropriedades , Target, Dependent, e TargetAndDependent são, em vez disso, thread-safe, e seguras de usar se Dispose() não forem invocadas simultaneamente.

Construtores

Name Description
DependentHandle(Object, Object)

Inicializa uma nova instância da DependentHandle estrutura com os argumentos especificados.

Propriedades

Name Description
Dependent

Obtém ou define a instância dependente do objeto para o handle atual.

IsAllocated

Obtém um valor que indica se esta instância foi construída com DependentHandle(Object, Object) e ainda não foi descartada.

Target

Obtém ou define a instância do objeto de destino para o handle atual. O destino só pode ser definido para um null valor depois de a DependentHandle instância ter sido criada. Fazê-lo fará Dependent com que também comece a regressar null , tornando-se elegível para recolha mesmo que o alvo anterior ainda esteja vivo.

TargetAndDependent

Obtém os valores de ambos Target e Dependent (se disponível) como uma operação atómica. Ou seja, mesmo que Target esteja simultaneamente definido como null, chamar este método devolverá null tanto para o alvo como para o dependente, ou retornará ambos os valores anteriores. Se Target e Dependent fossem usados sequencialmente neste cenário, seria possível por vezes recuperar com sucesso o alvo anterior, mas depois falhar em obter o dependente.

Métodos

Name Description
Dispose()

Realiza tarefas definidas pela aplicação associadas à libertação, libertação ou reinício de recursos não geridos.

Aplica-se a