About dispose :
http://msdn.microsoft.com/library/d...l/frlrfsystemidisposableclassdisposetopic.asp
if a object contains a shutdown feature like close you must always
explicitly call it if you are finished with it
however if a component implements an idisposible interface you may call it
but it is not absolutely necesary as the GC wil call it for you
I use the following rule for good coding practice , for method level scoped
objects i never call a dispose method , however after the usage of a global
object ( global to the class ) that implements idisposible i do call it
p.s.
calling dispose multiple times will only result in coding overhead , and a
bigger executable in the end

, it does not hurt the performance as
idisposible has a boolean flag if it is / was called before on the current
object
regards
Michel Posseth [MCP]