关于C#循环图片GDI+内存不足异常的记录

发布时间:2017-1-25 1:14:59 编辑:www.fx114.net 分享查询网我要评论
本篇文章主要介绍了"关于C#循环图片GDI+内存不足异常的记录 ",主要涉及到关于C#循环图片GDI+内存不足异常的记录 方面的内容,对于关于C#循环图片GDI+内存不足异常的记录 感兴趣的同学可以参考一下。

循环大量图片的时候会报出GDI+内存不足的问题,这个问题困扰了我很久,下面是我的几个解决方案:

  1. 使用using(){}代码块来定义需要释放内存的变量。using代码块会在代码结束的时候释放变量,但是并不能彻底解决。
  2. 使用GC.Collect()启动.NET自身的内存回收。但是这里注意,不要所有循环完毕了之后再回收,这样起不到任何效果,要每次循环结尾的时候回收。但是这个仍然不能彻底的解决问题。
  3. 这是最关键的一步!Thread.Sleep(500)。是的,没错,进程暂停一小段时间。这个可以彻底解决内存不足的问题。

好了,这里要说一下为什么进程暂停可以彻底解决这个问题。因为内存释放并是单独的代码,即内存释放和程序代码是同时执行的,也就是异步的。这里需要等待彻底释放之后,再运行其它的代码,所以要暂停一下进程。

上一篇:我是服务的执政官-服务发现和注册工具consul简介
下一篇:SonarQube-5.6.3 代码分析平台搭建使用

相关文章

相关评论