日期:2014-05-18  浏览次数:20811 次

关于C#线程的问题
请教一个问题:在C#的操作中,我单击一个按钮后,启动十个线程对一个DataSet中的十个表进行错误检测,这十个表中共有十四万多条记录,在测试前,内存的占用量在200M左右,当我用线程检测完后,对这十个表进行合并,然后将那九个表REmove掉,为什么内存变为380多M了。另外,在线程没有结束时,我又一次单击按钮,怎样停止所有正在运行的线程呢?
还有,在Visual Studio中是否可以查看某个DataSet 所占的内存量?


------解决方案--------------------
内存管理学GC,尝试内存释放GC.Collect();

线程终止使用Abort()方法;
------解决方案--------------------
使用GC的作用不一定好,注意资源的释放方法,什么地方用close,什么地方用dispose,什么地方用GC.Collect,都是很有讲究的,我以前也遇到资源莫名占用过大现象,后来去微软查了相关标准的释放方法后,效果提升10%