Browse DevX
Sign up for e-mail newsletters from DevX

Tip of the Day
Language: VB7
Expertise: Intermediate
Jul 6, 2002



Building the Right Environment to Support AI, Machine Learning and Deep Learning

Release COM objects earlier

If you're using a COM object through COM Interop you should be aware that the object isn't released as soon as you set it to Nothing, as it happens with VB6. Instead, the object will be released only at the first garbage collections that occurs after the object is set to Nothing or goes out of scope.

If the object's destructor - the Class_Terminate routine in VB jargoon - contains important code that should be executed as soon as the main application doesn't need the object any longer - for example, it closes a file or a database connection - you should force the release of the COM object as soon as you don't need it. You can do this with the Marshal.ReleaseComObject static method. The following examples shows how to do:

' this is a COM component that does cleanup code when it is destroyed
Dim obj As New MyComLibrary.MyComObject
' use the object
' ...
' force the release of the COM object and set it to Nothing
obj = Nothing
If you aren't sure that an object variable points to a COM object, you can use the Marshal.IsComObject shared method before using the ReleaseComObject method:

If Marshal.IsComObject(obj) Then
End If
Francesco Balena
Thanks for your registration, follow us on our social networks to keep up-to-date