Compartilhar via


DependentHandle Estrutura

Definição

Representa um identificador de coleta de lixo dependente. O identificador manterá condicionalmente uma instância de objeto dependente ativa, desde que uma instância de objeto de destino também esteja ativa, sem representar uma referência forte à instância de destino.

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

Comentários

Um DependentHandle valor com uma determinada instância de objeto como destino não fará com que o destino seja mantido ativo se não houver outras referências fortes a ela, mas o fará para a instância de objeto dependente, desde que o destino esteja ativo.

O uso desse tipo é conceitualmente equivalente a ter uma referência fraca a uma determinada instância de objeto de destino A, com esse objeto tendo um campo ou propriedade (ou alguma outra referência forte) a uma instância de objeto dependente B.

O DependentHandle tipo não é thread-safe e os consumidores são responsáveis por garantir que isso Dispose() não seja chamado simultaneamente com outras APIs. Não fazer isso resulta em um comportamento indefinido.

As IsAllocatedpropriedades , DependentTarget, e TargetAndDependent são, em vez disso, thread-safe e seguras para usar se Dispose() não for invocada simultaneamente também.

Construtores

DependentHandle(Object, Object)

Inicializa uma nova instância do DependentHandle struct com os argumentos especificados.

Propriedades

Dependent

Obtém ou define a instância de objeto dependente para o identificador atual.

IsAllocated

Obtém um valor que indica se essa 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 identificador atual. O destino só pode ser definido como um null valor depois que a DependentHandle instância tiver sido criada. Isso fará com Dependent que comece a retornar null também e se torne elegível para coleta, mesmo que o destino anterior ainda esteja ativo.

TargetAndDependent

Obtém os valores de Target e Dependent (se disponíveis) como uma operação atômica. Ou seja, mesmo que Target seja definido simultaneamente como null, chamar esse método retornará null para destino e dependente ou retornará ambos os valores anteriores. Se Target e Dependent foram usados sequencialmente nesse cenário, às vezes seria possível recuperar com êxito o destino anterior, mas, em seguida, não conseguir obter o dependente.

Métodos

Dispose()

Realiza tarefas definidas pelo aplicativo associadas à liberação ou à redefinição de recursos não gerenciados.

Aplica-se a