社区
C#
帖子详情
c# 中内存释放的问题----在线等,高手来
laokaizzz
2009-11-13 02:45:25
在MDI窗体中每添加一个子窗体就增加内存,关闭子窗体,内存并不减少,我想关闭子窗体,立刻释放该窗体占用的内存,高手教教,谢谢
(我让子窗体=null,再调用GC.Collect()也是不管用)
我看内存是在资源管理器里看。
...全文
199
15
打赏
收藏
c# 中内存释放的问题----在线等,高手来
在MDI窗体中每添加一个子窗体就增加内存,关闭子窗体,内存并不减少,我想关闭子窗体,立刻释放该窗体占用的内存,高手教教,谢谢 (我让子窗体=null,再调用GC.Collect()也是不管用) 我看内存是在资源管理器里看。
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
15 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
laokaizzz
2009-11-13
打赏
举报
回复
不解释了么?不过回答到这,也够了,谢了,结贴
laokaizzz
2009-11-13
打赏
举报
回复
[Quote=引用 10 楼 qlzf11140820 的回复:]
引用 8 楼 laokaizzz 的回复:
引用 3 楼 sisen 的回复:
.net是托管的。无论你如何GC,怎么Dispose,该回收的东西,都是收CLR进行的。.net里提供的GC并不能如C++那样能起到实质的作用。
建议:
所有对象在使用之后,及时Dispose。内存在使用达到一定程度后,CLR会自动帮你回收。
知道会自动回收,我要的效果是即时回收,我点击关闭,内存就立刻回收了
System.Diagnostics.Process.GetCurrentProcess().MinWorkingSet lz试试
[/Quote]
这样是可以的,给他设置一个低点的值,我也曾经看到过这样的文章,但是上面说要动态的改变这个值的大小,否则会出问题,不知道是不是
laokaizzz
2009-11-13
打赏
举报
回复
[Quote=引用 9 楼 agentianle 的回复:]
托管内存的释放,设为null之后,两次调用GC试试
[/Quote]
不行的
qldsrx
2009-11-13
打赏
举报
回复
一般连续调用两次GC.Collect()就可以释放了,如果还不行,那就是你内存泄漏了。
cicigl
2009-11-13
打赏
举报
回复
恩,自己处理,而且很快
qlzf11140820
2009-11-13
打赏
举报
回复
[Quote=引用 8 楼 laokaizzz 的回复:]
引用 3 楼 sisen 的回复:
.net是托管的。无论你如何GC,怎么Dispose,该回收的东西,都是收CLR进行的。.net里提供的GC并不能如C++那样能起到实质的作用。
建议:
所有对象在使用之后,及时Dispose。内存在使用达到一定程度后,CLR会自动帮你回收。
知道会自动回收,我要的效果是即时回收,我点击关闭,内存就立刻回收了
[/Quote]
System.Diagnostics.Process.GetCurrentProcess().MinWorkingSet lz试试
天乐
2009-11-13
打赏
举报
回复
托管内存的释放,设为null之后,两次调用GC试试
laokaizzz
2009-11-13
打赏
举报
回复
[Quote=引用 3 楼 sisen 的回复:]
.net是托管的。无论你如何GC,怎么Dispose,该回收的东西,都是收CLR进行的。.net里提供的GC并不能如C++那样能起到实质的作用。
建议:
所有对象在使用之后,及时Dispose。内存在使用达到一定程度后,CLR会自动帮你回收。
[/Quote]
知道会自动回收,我要的效果是即时回收,我点击关闭,内存就立刻回收了
天乐
2009-11-13
打赏
举报
回复
另外,关注一下在窗体内是否使用到了其他的非托管资源,如调用COM、非托管动态库等
如果有,请在Form Close之前,释放之
qlzf11140820
2009-11-13
打赏
举报
回复
clr会处理的
ibobo023
2009-11-13
打赏
举报
回复
learning~
guyehanxinlei
2009-11-13
打赏
举报
回复
UP
sisen
2009-11-13
打赏
举报
回复
.net是托管的。无论你如何GC,怎么Dispose,该回收的东西,都是收CLR进行的。.net里提供的GC并不能如C++那样能起到实质的作用。
建议:
所有对象在使用之后,及时Dispose。内存在使用达到一定程度后,CLR会自动帮你回收。
laokaizzz
2009-11-13
打赏
举报
回复
[Quote=引用 1 楼 hide1984 的回复:]
不要用form.close()方法。
用form.dispose();
"我让子窗体=null,再调用GC.Collect()也是不管用"
如果是非托管资源,GC.Collect()是没有用的,GC只能回收托管资源。
[/Quote]
试过了form.dispose()方法,不管用,form窗体时托管资源还是非托管资源呢
Hide1984
2009-11-13
打赏
举报
回复
不要用form.close()方法。
用form.dispose();
"我让子窗体=null,再调用GC.Collect()也是不管用"
如果是非托管资源,GC.Collect()是没有用的,GC只能回收托管资源。
实现
内存
半自动
释放
的基类Object
内存
管理是C++最令人痛恨的
问题
,也是C++最有争议的
问题
,C++
高手
从
中
获得了更好的性能,更大的性能,C++菜鸟的收获则是一遍一遍的检查代码和对C++的痛恨,但
内存
管理在C++
中
无处不在。难道使用C++就不能像使用
C#
或...
【
C#
】
内存
管理
托管
内存
与非托管
内存
托管
内存
C#
语言开发的程序所使用的
内存
,我们称之为托管
内存
。那么什么是托管
内存
呢?我们可以先理解为,
C#
专用...在
C#
语言开发的程序
中
,我们所声明的变量,不论是常量,还变量,都在这...
openCV
内存
释放
问题
前一天把系统整个重写了一遍,脉络清晰了很多,也终于解决了以前很多崩溃,异常退出的
问题
。...
内存
泄露是说没有
释放
已经不能使用的
内存
,这里一般指堆的
内存
才需要显示的
释放
。比如用malloc,calloc,real
ffmpeg
内存
释放
问题
最近改了个视频解码编码的小程序,能得到最后的结果,但是
内存
老是
释放
不了,希望
高手
指点!附代码如下: const char *input_file_name="/users/sj/desktop/HH_videoTransform2/input.mov"; av_register_all...
opencv-有关
内存
释放
的一些
问题
花了一天调试采集视频
内存
泄露的
问题
,所有申请的
内存
仔细检查过都已经
释放
问题
仍然得不到解决,所幸在论坛上找到这篇文章,原来是cvCloneImage惹的祸!大神总结的很好,直接转载了: OpenCV
中
的
内存
泄露
问题
...
C#
110,566
社区成员
642,567
社区内容
发帖
与我相关
我的任务
C#
.NET技术 C#
复制链接
扫一扫
分享
社区描述
.NET技术 C#
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
让您成为最强悍的C#开发者
试试用AI创作助手写篇文章吧
+ 用AI写文章