Summary
The point of this chapter was to demystify the garbage collection process. As you have seen, the garbage collector will only run when it is unable to acquire the necessary memory from the managed heap (or when a given AppDomain unloads from memory). When a collection does occur, you can rest assured that Microsoft’s collection algorithm has been optimized by the use of object generations, secondary threads for the purpose of object finalization, and a managed heap dedicated to host large objects.
This chapter also illustrated how to programmatically interact with the garbage collector using the System. GC class type. As mentioned, the only time when you will really need to do so is when you are building finalizable or disposable class types. Recall that finalizable types are classes that have overridden the virtual System.Object.Finalize() method to clean up unmanaged resources (at some time in the future). Disposable objects, on the other hand, are classes (or structures) that implement the IDisposable interface. Using this technique, you expose a public method to the object user that can be called to perform internal cleanup ASAP. Finally, you learned about an official “disposal” pattern that blends both approaches.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Preview
Unable to display preview. Download preview PDF.
Similar content being viewed by others
Rights and permissions
Copyright information
© 2006 Andrew Troelsen
About this chapter
Cite this chapter
(2006). Understanding Object Lifetime. In: Pro VB 2005 and the .NET 2.0 Platform. Apress. https://doi.org/10.1007/978-1-4302-0160-1_8
Download citation
DOI: https://doi.org/10.1007/978-1-4302-0160-1_8
Publisher Name: Apress
Print ISBN: 978-1-59059-578-7
Online ISBN: 978-1-4302-0160-1
eBook Packages: Professional and Applied ComputingProfessional and Applied Computing (R0)Apress Access Books