关于dispose 对于一个 窗体控件用 this.Close()和 this.Dispose()写一起可以么?为什么dispose后 占用的内存越来越多呢? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 Close是关闭窗体Dispose是释放此类占有的资源Close方法是和Close事件相配合的,而Dispose可以在任何我们需要删除这个窗体的时候调用。虽然一般来说关闭窗体意味着把窗体类的资源释放掉,但是也不是绝对的。好比看电视一般来说是指欣赏电视节目,但是停电的状态下你也是可以盯着电视机瞅的。当然作为初级的应用来说,把这两个方法当成一个其实没多大关系 ps:你凭什么说dispose后 占用的内存越来越多? 兄弟你怎么测得,能具体说说么?PS:你确定是dispose()方法引起的么,没被其它因素干扰? 很多实践都证明了 close 是会关闭窗体并且释放资源的,而且不只是释放内存而已。同时,释放内存不是 close 决定的,而是 GC 决定的。所以,与其怀疑 MSDN 说谎, 我宁愿相信你的测试有问题 可以。不过建议使用using语句using(类 类1=new 类()){ 代码.....}这样可以自动释放 不管close还是dispose都不可能会让内存增加的,最多暂时保存不变, Dispose是释放此类占有的资源 后你的内存越来越大 , 哪倒是奇怪 , 应该不会。除非 你释放的那个资源,是锁住的 排队的太多 倒是有可能。解决方法, 管理一下你的进程和线程吧。 一般来说Close都是调用Dispose方法的有些Dispose是调用Close方法的。作用是一样的,释放资源。这里资源主要是指非托管资源,比如文件句柄,窗体句柄。系统释放非托管资源是通过Finalize方法的,但是这个方法我们是无法调用的,也就不能确定他什么时候被调用。所以为了提供这种显示控制的功能,就是用了Dispose模式,所有定义了Finalize方法的类型都必须实现Dispose模式。保证非托管资源不会泄露.NET框架设计中讲的很详细 .net程序在跑的过程中,是会出现内存以8K或其他步幅增加的情况,但那不是由dispose带来的。那是由于你的程序在一段时间以内在不断的执行,由于需要用到局部变量等等而增加但还没有及时回收所造成的现象。 自己开发的邮件客户端程序,保留服务器副本后如何才能不重复收取? 求 字符相似匹配 解决方案 如何对这个操作进行代理……请教 悬赏:哪位老大知道QQ的聊天记录保存格式? 关于DataTable中的分组计算机功能!! 怎么关掉当前的解决方案,然后再打开我想打开的! 一个很奇怪的问题,自己写的一个控件在调试时关闭Form后不能结束进程,请帮忙试一试(有源码) 怎么调试这个文件还是错的呢? dropdownlist如何设定默认值? 这段代码如何转化为C#? 关于一种存储方式 高分求助 WCF Security IIS Host问题
Dispose是释放此类占有的资源Close方法是和Close事件相配合的,而Dispose可以在任何我们需要删除这个窗体的时候调用。虽然一般来说关闭窗体意味着把窗体类的资源释放掉,但是也不是绝对的。
好比看电视一般来说是指欣赏电视节目,但是停电的状态下你也是可以盯着电视机瞅的。当然作为初级的应用来说,把这两个方法当成一个其实没多大关系 ps:你凭什么说dispose后 占用的内存越来越多?
兄弟你怎么测得,能具体说说么?PS:你确定是dispose()方法引起的么,没被其它因素干扰?
很多实践都证明了 close 是会关闭窗体并且释放资源的,而且不只是释放内存而已。同时,释放内存不是 close 决定的,而是 GC 决定的。所以,与其怀疑 MSDN 说谎, 我宁愿相信你的测试有问题
using(类 类1=new 类())
{
代码.....
}
这样可以自动释放
除非 你释放的那个资源,是锁住的 排队的太多 倒是有可能。
解决方法, 管理一下你的进程和线程吧。
有些Dispose是调用Close方法的。
作用是一样的,释放资源。这里资源主要是指非托管资源,比如文件句柄,窗体句柄。系统释放非托管资源是通过Finalize方法的,但是这个方法我们是无法调用的,也就不能确定他什么时候被调用。
所以为了提供这种显示控制的功能,就是用了Dispose模式,所有定义了Finalize方法的类型都必须实现Dispose模式。保证非托管资源不会泄露.NET框架设计中讲的很详细
那是由于你的程序在一段时间以内在不断的执行,由于需要用到局部变量等等而增加但还没有及时回收所造成的现象。