Thanks for your input. So you mean that If i know the object type I try to add them in design time?
You can use "gc.Collect" to force garbage collection though is not recommended unless you have a long lived application that goes idle for sometime.
In fact this is what i am facing. In one of my projects I have a Crystal Report page that the user may just be using that form for more than 1 hour or so trying to print out the pages that is sometimes more than 1500 pages(The temp file of this report may be as large as 700 mb). So when this form is going to close and return to the main page it takes a little more time than if you quickly close it and not let it idle for long time. So do you recommend that I try to invoke GC on another thread while the user is busy with printing? and if yes, then at what interals? how can I guess when is the right time?