-- bruce (sqlwork.com)
It is unwise to call GC.Collect unless you know what the consequences
of doing so are. For example, while the GC runs, nothing else runs.
Not your program, and not anyone else's program. That is possibly
what is slowing down the app. It is a rare and unusual situation in
which explicitly calling GC is needed or helpful.
The proper thing to do is correctly implement IDisposable in all
classes that use finite resources such as file handles or database
connections, and then always close database connections or files
immediately after use (and set the references to them to null). Then
the system will run the GC only if it ever needs to.