You are creating a class that uses a lot of system resources. 
When you use objects of this class, you want to be able to free these resources as soon as you're done using the object. 
What do you do?

IDisposable is the way to go. You dispose of the object by calling its Dispose method or by wrapping it in a using code block.