我现在在开发一个电子地图程序,当图层不断切换时现象如下:
内存到一定时候会自动降下来
虚拟内存就一直上涨 I/O读取很多
一般要2到3个小时才会抛异常
错误提示是“创建窗口句柄时出错” 电子地图实现的原理是先加载图片,在图片上创建Panel实现图层上某点的显示。
以上资源已在图层切换时用dispose进行释放。
但效果不佳。那位高手帮忙指点一下呀
内存到一定时候会自动降下来
虚拟内存就一直上涨 I/O读取很多
一般要2到3个小时才会抛异常
错误提示是“创建窗口句柄时出错” 电子地图实现的原理是先加载图片,在图片上创建Panel实现图层上某点的显示。
以上资源已在图层切换时用dispose进行释放。
但效果不佳。那位高手帮忙指点一下呀
解决方案 »
- 问个不专业C#的问题,居然在网上都找不到同样的。。
- 新手求教:谁可以告诉我MSDN在哪下载?
- c#里面 不再执行后面代码的 函数是什么类似于delphi 里的exit
- 相对路径
- 高手们帮一下菜鸟
- 关于C#从数据库空提出图片的问题(急!~~~~~~)
- random
- 在WIN中的DataGrid???
- 将excel显示到页面上 我已经读取了datatable 但是gridview不好用 谁能给个不用插件的啊 直接显示的 谢啦
- vs2005,windows应用程序调用c#编写的控件
- 有人知道如何用 tabControl 实现 ie7选项卡的功能吗?主要是动态新建tabPage的新增事件问题
- 请教:VS2005属性中的下拉列表是怎么实现的?
是不是应该把new出来得对象显示的置为NULL呢.这样也许会好点
建议!!
一般C#程序是不需要考虑这些个问题的.MSDN不推荐显示调用GC.Collect().也许真是非托管代码的错.
我查过相关资料,“托管资源是指由CLR管理分配和释放的资源,一般是托管内存,而非托管资源是由系统分配和释放的资源
一般地在CLR里new 一个对象或者分配一个数组都不需要手动去释放内存, 而如windows里的句柄资源常常需要手动释放,如字体、刷子、DC等”
对于我说的图片处理应该属于非托管资源,对于NEW出来的对象应该是托管资源,系统可以自己回收的。我在每次图层切换前也将对象置Null,也试过GC.Collect(). 没啥效果。
昨天发现图片切换太快,可能出现加载异常,异常时并未进行资源释放。今天再跟一下。