Definição – o que significa Finalizar?
Finalize é um método de objeto que contém o código necessário para liberar recursos não gerenciados e executar operações de limpeza antes da coleta de lixo (GC).
O método finalize é usado para limpar recursos não gerenciados pelo .NET. Embora a estrutura .NET seja projetada para liberar recursos gerenciados executando implicitamente tarefas de gerenciamento de memória, recursos de aplicativos não gerenciados – como identificadores de arquivo e conexões de banco de dados – devem ser liberados explicitamente.
Definirtec explica Finalize
Enquanto finalize é projetado para ser chamado implicitamente por GC, o método dispose pode ser explicitamente chamado pelo código do usuário para liberar recursos.
Finalize é semelhante aos destruidores C ++ tradicionais, já que cada um é responsável por liberar recursos de objeto. Os destruidores C ++ são executados imediatamente quando um objeto sai do escopo, enquanto finalize é chamado durante a limpeza do objeto no GC. Em C #, finalize não pode ser chamado ou substituído diretamente. Se um destruidor for declarado, ele será convertido no método finalize quando o programa for compilado.
Durante a finalização, a alocação de memória ou a chamada de métodos virtuais devem ser evitados. O escopo de finalizar deve ser protegido de forma que seja acessado apenas na mesma classe ou em sua classe derivada. Finalize não deve fazer referência a nenhum outro objeto. Em C #, chamar finalize diretamente em um objeto diferente de sua classe base é uma operação inválida. O código de finalização deve ser mínimo, sem nenhuma chamada capaz de bloquear o thread de chamada. Como finalize é chamado por um thread dedicado, seu código não deve usar armazenamento local de thread ou qualquer técnica que exija afinidade de thread.
Usar a finalização como um mecanismo de fallback para liberar memória ou recursos não gerenciados é essencial, devido à falta de determinismo e efeitos no desempenho do GC.
Esta definição foi escrita no contexto do .NET