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.Indicates whether this application domain is unloading, and the objects it contains are being finalized by the common language runtime.

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

Retornos

true se esse domínio de aplicativo estiver descarregando e o Common Language Runtime tiver começado a chamar finalizadores; caso contrário, false.true if this application domain is unloading and the common language runtime has started invoking finalizers; otherwise, 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 pelo lixo.The finalization method for an object provides you an opportunity to perform any necessary cleanup operations before the object is garbage collected. Após a finalização, o objeto é acessível, mas em um estado inválido e, portanto, inutilizável.After finalization, the object is accessible but in an invalid state and therefore unusable. Eventualmente, a coleta de lixo é concluída e recupera o objeto.Eventually, garbage collection completes and reclaims the object.

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.An object's finalization method is called in one of the following situations: during garbage collection, when the common language runtime is shutting down, or when the application domain that contains the object is unloaded. O método IsFinalizingForUnload retorna true somente no último caso; Ele não retornará true se a finalização resultar da coleta de lixo de rotina ou do desligamento do CLR.The IsFinalizingForUnload method returns true only in the last case; it does not return true if finalization results from routine garbage collection or from CLR shutdown.

Observação

Para determinar se a finalização se deve ao desligamento do CLR, use a propriedade Environment.HasShutdownStarted.To determine whether finalization is due to CLR shutdown, use the Environment.HasShutdownStarted property. Ele retornará true se a finalização for devido a um domínio de aplicativo que está sendo descarregado ou ao desligamento do CLR.It returns true if finalization is due to an application domain being unloaded or to the CLR shutting down.

Durante a execução em seu método de finalização durante o descarregamento do domínio, talvez você queira acessar outro objeto que é referenciado por um campo estático e tem um método de finalização.While executing in your finalization method during domain unloading, you might want to access another object that is referenced by a static field and has a finalization method. No entanto, você não pode fazer isso de maneira confiável porque o objeto acessado já pode ter sido finalizado.However, you cannot reliably do so because the accessed object might already have been finalized.

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 é implementado especialmente para que você sempre possa gravar no console do sistema, mesmo durante o descarregamento do domínio ou o desligamento do sistema.An exception to this rule is the Console class, which contains static fields that reference stream objects, but is implemented specially so you can always write to the system console, even during domain unloading or system shutdown.

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.Use this method in an object's finalization method to determine whether the application domain that contains the object is unloading. Se esse for o caso, você não poderá acessar de maneira confiável nenhum objeto que tenha um método de finalização e seja referenciado por um campo estático.If that is the case, you cannot reliably access any object that has a finalization method and is referenced by a static field.

Aplica-se a

Veja também