Lar Desenvolvimento O que é descarte? - o que é techopedia

O que é descarte? - o que é techopedia

Índice:

Anonim

Definição - O que significa Dispose?

No contexto de C #, disposição é um método de objeto chamado para executar o código necessário para limpeza de memória e liberar e redefinir recursos não gerenciados, como identificadores de arquivo e conexões com o banco de dados. Dispose melhora o desempenho e otimiza a memória, liberando objetos incontroláveis ​​e recursos escassos, como identificadores de interface de dispositivo gráfico (GDI) usados ​​em aplicativos com espaço restrito no Windows.


O método Dispose, fornecido pela interface IDisposable, implementa chamadas Dispose. O padrão Dispose foi desenvolvido para limpeza oportuna e previsível, prevenção de vazamentos temporários de memória e descarte de recursos.

Techopedia explica Dispose

A estrutura .NET facilita a coleta de lixo (GC), gerencia a memória e os recursos dos objetos e recupera referências inválidas da memória de objetos invocando Finalize - um método não determinístico. O método Dispose controla a vida útil das instâncias de memória de objeto e fornece controle explícito de limpeza de memória, versus a limpeza implícita de memória de Finalize. Dispose pode ser chamado mesmo quando existem outras instâncias de objetos de memória, enquanto Finalize só pode ser chamado após a destruição do último objeto de memória.


As regras do método Dispose são as seguintes:

  • Usado para recursos não gerenciados que exigem liberação imediata após o uso.
  • Se Dispose não for chamado, o método Finalize deve ser implementado.
  • Depois de chamar o método Dispose, o método GC.SuppressFinalize deve ser chamado para evitar o método Finalize e evitar o GC desnecessário.
  • As exceções devem ser tratadas com cuidado se o método Dispose for invocado mais de uma vez. Se os recursos forem descartados, qualquer método de instância poderá lançar o ObjectDisposedException.
  • Um objeto com um método Dispose chamado anteriormente não pode ser reutilizado.
  • Dispose é recomendado apenas para o gerenciamento de objetos de recursos nativos e objetos COM (Component Object Model) expostos ao .NET Framework.
  • Dispose não pode ser chamado simultaneamente de vários threads, devido a resultados imprevisíveis.
  • Os tipos de valor não devem ser criados como tipos descartáveis ​​ou com membros de recursos não gerenciados.
  • Ao usar recursos não gerenciados, é considerado uma prática recomendada aplicar a instrução Using do código-fonte, que invoca automaticamente o método Dispose do objeto depois de concluir o código do objeto.
Esta definição foi escrita no contexto de C #
O que é descarte? - o que é techopedia