USUÁRIO:      SENHA:        SALVAR LOGIN ?    Adicione o VBWEB na sua lista de favoritos   Fale conosco 

 

  Dicas

  Visual Basic.Net    (ActiveX/Controles/DLL)

Título da Dica:  Libere corretamente componentes COM
Postada em 6/10/2003 por ~Ð@®£@Ñ            
Você com certeza já deve conhecer o funcionamento do garbage collector do Framework .NET, que faz com que um objeto não seja realmente liberado no momento que atribuimos nothing a ele.

Para os objetos CLS, que possuem o método Dispose para liberar seus recursos mais críticos, isso não é grande problema. Mas para componentes COM, em especial aqueles que possuem código a ser executado no class_terminate, isso pode ser um problema grande.

Para resolver, basta lembrar que o acesso do .NET a componentes COM é feito através de um recurso chamado de COM Interop. Este mesmo recurso nos fornece os meios de que necessitamos para liberar um componente COM, veja :

' Definição de um objeto COM
Dim obj As New MyComLibrary.MyComObject
' Utilização do objeto
' ...
' Forçar a eliminação do objeto
System.Runtime.InteropServices.Marshal.ReleaseComObject(obj)
obj = Nothing

Se você tiver dúvidas se uma determinada variável realmente aponta para um objeto COM, pode testar isso, veja :

If Marshal.IsComObject(obj) Then
Marshal.ReleaseComObject(obj)
End If
 


CyberWEB Network Ltda.    © Copyright 2000-2024   -   Todos os direitos reservados.
Powered by HostingZone - A melhor hospedagem para seu site
Topo da página