Garbage collector is .net way of memory management of managed resources.
GC is not able to release memory from unmanaged resource like File handlers, window handlers, network sockets, database connections etc.
System.GC.Collect() forces garbage collector to run. This is not recommended but can be used if situations arise