我用C#写的一个截图工具
很简单的功能
截取全屏,暂时保存在Bitmap pic中
然后保存到电脑上但是截图截了几次后
内存一路狂长,从几M到上百M
截一次图就要吃掉10多M内存
太夸张类...不知如何解决
dispose掉那个pic似乎也没用

解决方案 »

  1.   

    占10M~20M内存是正常的,C#要在framework下运行,就相当于java的虚拟机一样,但是如果是小程序的话,点到100M以上就是程序有问题了,肯定有资源没有释放。
      

  2.   

    占10M~20M内存是正常的,C#要在framework下运行,就相当于java的虚拟机一样,但是如果是小程序的话,点到100M以上就是程序有问题了,肯定有资源没有释放。
      

  3.   

    刚才统计了一下,截一次图就吞我7M的内存,等差数列增长除了导入dll文件,就定义了一个bitmap(虽然有其它的功能,但是没有使用,这个应该没关系的吧)大家有没有合适的资源资源管理的参考作品啊?
      

  4.   

    对了,定义了全局的hook,用来响应截图事件,难道这个有关系吗?
      

  5.   

    问题解决了!
    使用 System.GC.Collect(); 来强制执行"垃圾回收器"
    很对资源都是标记不再被应用,但是出于回收资源费时费力的原因,并没有真正清理出内存
    使用 System.GC.Collect()来强制清理。
    现在程序的资源占用就合理了,26m-19m浮动,属于正常了。