用c#编的winform应用程序在运行一段时间以后会占用越来越多的内存。
如果重启SQL数据库服务就会被释放掉,有没有什么方法直接释放内存。
我加了很多dispose gc.collect可是作用不大

解决方案 »

  1.   

    说明自己有内存泄露,对象的引用没释放,垃圾回收当然不会清除。
    C#最典型的泄露案例之一,你有一个全局对象,这个对象在运行过程中是一直存在的,不会释放,然后你有一个上层模块,比如一个window,象全局对象订阅了它的事件 XXXevent += yyyyyy; 但是没有解(XXXevent -= yyyyyy;),这样你的window关闭之后,window对象就不会被垃圾回收,形成了泄露。
    总的来说,还是要从自己的代码下手。
      

  2.   

    数据库链接不用要及时close,数据库对象及时Dispose
    离线数据不用也及时Dispose()