AppDomain.IsFinalizingForUnload Método
Importante
Algumas informações se referem a produtos de pré-lançamento que podem ser substancialmente modificados antes do lançamento. A Microsoft não oferece garantias, expressas ou implícitas, das informações aqui fornecidas.
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
true
se esse domínio de aplicativo estiver descarregando e o Common Language Runtime tiver começado a chamar finalizadores; caso contrário, false
.
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.
Nota
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.
Nota
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.
Produto | Versões |
---|---|
.NET | Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7 |
.NET Framework | 1.1, 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8 |
.NET Standard | 2.0, 2.1 |