这两段代码为什么会消耗内存情况不同呢?求解。。 内存bitmap.net 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 http://blog.jobbole.com/31443/这个可以解释你的问题 Bitmap 要显示释放,不能依赖 GC .net的内存回收机制:当一个对象没有人引用的时候就会被回收内存回收机制并不是每次都检测所有对象的~,而是把对象归到某一代中~就好像爷爷一代,爸爸一代,孩子一代很明显~爷爷那一代更需要经常去判断是否失去引用的~ 而孩子那一代则不需要频繁地去检测是否失去引用其实按你上面的~都是失去引用的~可能是被静态类型的变量引用过~ 所以被归为不需要经常判断的那一代~所以在for循环中~垃圾回收虽然执行了~但没有检测他们~当然上面只是我的猜测~ 你可以看《clr via C#》这本书当然我也可以提供验证我猜测的方法~ for 10次就好~然后程序不要关~过一段时间后 看内存是否会降下来~貌似还有一些专业的工具可以检测~ Bitmap是非托管的资源,需要自己手动调用Dispose方法来释放内存吧。你这2种方法都会造成内存溢出。 你每次for循环时都new了一个新的newbmp 而这个变量在static方法 static方法不自行销毁 所以你内存会爆掉 有谁做过VBA开发? 急.如何在C#网页中实现C语言的在线编译 求C# winform下载代码 关于DataTable的问题 请教大家一个Listbox刷新的问题 请问C#中null与“”、Empty的区别 怎样判断水晶报表的当前页是否是最后一页? 编程方式添加XML 架构 c#中如何替换word文件中的页眉页脚中的文字 [求助]如何在excel中全文检索关键字? 刚从培训机构毕业,在小公司做比较小的个人项目是不是比做中型或大型项目成长慢??? List如何实现先进先出?
这个可以解释你的问题
就好像爷爷一代,爸爸一代,孩子一代
很明显~爷爷那一代更需要经常去判断是否失去引用的~ 而孩子那一代则不需要频繁地去检测是否失去引用其实按你上面的~都是失去引用的~可能是被静态类型的变量引用过~ 所以被归为不需要经常判断的那一代~
所以在for循环中~垃圾回收虽然执行了~但没有检测他们~当然上面只是我的猜测~ 你可以看《clr via C#》这本书当然我也可以提供验证我猜测的方法~ for 10次就好~
然后程序不要关~过一段时间后 看内存是否会降下来~貌似还有一些专业的工具可以检测~
你这2种方法都会造成内存溢出。