Compartilhar via


AppDomain.IsFinalizingForUnload Método

Definição

Indica se esse domínio de aplicativo está descarregando e os objetos que ele contém estão sendo finalizados pelo Common Language Runtime.

public:
 bool IsFinalizingForUnload();
public bool IsFinalizingForUnload ();
member this.IsFinalizingForUnload : unit -> bool
Public Function IsFinalizingForUnload () As Boolean

Retornos

Boolean

true se esse domínio de aplicativo estiver descarregando e o Common Language Runtime tiver começado a chamar finalizadores; caso contrário, false.

Comentários

O método de finalização de um objeto oferece a oportunidade de executar todas as operações de limpeza necessárias antes que o objeto seja coletado. Após a finalização, o objeto é acessível, mas em um estado inválido e, portanto, inutilizável. Eventualmente, a coleta de lixo é concluída e recupera o objeto.

O método de finalização de um objeto é chamado em uma das seguintes situações: durante a coleta de lixo, quando o common language runtime está sendo desligado ou quando o domínio do aplicativo que contém o objeto é descarregado. O IsFinalizingForUnload método retorna true somente no último caso; ele não retorna true se a finalização resulta da coleta de lixo de rotina ou do desligamento do CLR.

Observação

Para determinar se a finalização é devido ao desligamento do CLR, use a Environment.HasShutdownStarted propriedade. Ele retornará true se a finalização for devido ao descarregamento de um domínio do aplicativo ou ao desligamento do CLR.

Durante a execução em seu método de finalização durante o descarregamento de domínio, convém acessar outro objeto referenciado por um campo estático e que tenha um método de finalização. No entanto, você não pode fazer isso de forma confiável porque o objeto acessado pode já ter sido finalizado.

Observação

Uma exceção a essa regra é a Console classe, que contém campos estáticos que fazem referência a objetos de fluxo, mas é implementada especialmente para que você sempre possa gravar no console do sistema, mesmo durante o descarregamento de domínio ou desligamento do sistema.

Use esse método no método de finalização de um objeto para determinar se o domínio do aplicativo que contém o objeto está descarregando. Se esse for o caso, você não poderá acessar de forma confiável qualquer objeto que tenha um método de finalização e seja referenciado por um campo estático.

Aplica-se a

Confira também