首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > asp.net >

关于WinForm窗体内存释放造成dotNet崩溃的有关问题,请各位高人指点迷津

2011-12-27 
关于WinForm窗体内存释放造成dotNet崩溃的问题,请各位高人指点迷津。小弟现在在用.Net开发WinForm+WebServi

关于WinForm窗体内存释放造成dotNet崩溃的问题,请各位高人指点迷津。
小弟现在在用.Net开发WinForm+WebService程序,偶然发现,我开发系统内存总是向上增长,大概涨到150M左右时DotNet出现异常,崩溃。
      后来,小弟测试了一下,原因是这样的:Form窗体打开一个,内存增长一些(大概2M,窗体有些大),关闭后也增长(幅度比较小),我已经在Closed事件中写了,this.Dispose();this.Close();
      请教各位大虾能不能彻底的释放到Form所占用的内存,请指教谢谢。分不够再加。
      谢谢!!!!

[解决办法]
你程序进行了哪些操作占用这么大?
加个强制回收gc.Collect();
[解决办法]
不知道阿
[解决办法]
如果对象有Dispose方法,那么你要调用这个方法.
关闭窗体的时候系统会调用窗体的Dispose方法来释放资源,所以你把在程序里用到的没有用Dispose方法的全局对象放到窗体的Dispose方法里调用就是了.

[解决办法]
莫非有病毒??
[解决办法]
给你个治标不治本的方法,释放内存的,跟最小化窗体一个效果:
声明:
[DllImport( "kernel32.dll ", SetLastError = true)]
static extern int SetProcessWorkingSetSize(IntPtr hProcess, int dwMinimumWorkingSetSize, int dwMaximumWorkingSetSize);

调用:
SetProcessWorkingSetSize(System.Diagnostics.Process.GetCurrentProcess().Handle, -1, -1);
[解决办法]
没遇到过这种问题,我感觉每次给close了以后就可以了

热点排行
Bad Request.