You need to dispose all objects that implements IDisposable. That's why they implement IDisposable interface.
GC.SupressFinalize requests that the system not call the finalizer for the specified object. (GC=Garbage collection
) SuppresFinalize should only be called by a class that has a finalizer. It's informing the GC that this object was cleaned up fully.