C#中如何关闭窗体?从内存中释放资源.

linlingwei 2008-10-05 11:02:10
窗口打开多了,程序占用内存很大,在关闭窗体时用下面的办法:

private void Form1_FormClosed(object sender, FormClosedEventArgs e)
{
this.Dispose();
this.Close();
}
可是发现内存资源并没有释放掉,该怎么做呢?
本人是c#新手,请指教.
...全文
4565 17 打赏 收藏 转发到动态 举报
写回复
用AI写文章
17 条回复
切换为时间正序
请发表友善的回复…
发表回复
卡索33 2010-12-27
  • 打赏
  • 举报
回复
学习了,正是我所需要的
upcwangbo 2008-10-08
  • 打赏
  • 举报
回复
Dispose会调用Close方法.
close只是关闭窗口却不释放资源!
Dispose将释放所有占用的资源!
cnming 2008-10-08
  • 打赏
  • 举报
回复
其实你只要调用this.close就可以了,自然会调用Dispose,这是.net的机制

至于内存回收,关键要看你的这个Form有没有调用一些非托管并且会驻留内存的内容。如果没有的话,均会自动释放,至于释放,一般都需要有时间的,并不会由于你关闭了就释放内存
cdc9jfzl 2008-10-08
  • 打赏
  • 举报
回复
C#有自己的析构函数,专门负责清理内存。虽然你可以强制调用GC.Collect() 但是不推荐这样做 其实也没有必要。

不用自己清理内存正是c#比C++优越的地方 :)

析构函数是托管的,由C#自己管理,所以发生时间不能确定。
KiSu214 2008-10-08
  • 打赏
  • 举报
回复
我一直在用Close()关闭窗体....
Dispose()......
没用过~~ 学习了~ 呵呵
zhuton 2008-10-08
  • 打赏
  • 举报
回复
我不会,但是我知道还有一种方法让你看不见form,就是this.hide.
wangyanboq 2008-10-08
  • 打赏
  • 举报
回复
调用

GC.Collect()
wuqiubin 2008-10-07
  • 打赏
  • 举报
回复
private void Form1_FormClosed(object sender, FormClosedEventArgs e)
{
this.Close();
this.Dispose();
GC.Collect();
GC.WaitForPendingFinalizers();
}
试试这样
first128 2008-10-06
  • 打赏
  • 举报
回复
学习了
palmax 2008-10-06
  • 打赏
  • 举报
回复
垃圾回收由GC托管,不是每时每刻都会立即回收,除非你调用GC.Collect()强制GC立即进行回收

托管资源在窗体关闭时会自动释放的,其他资源如 GDI 等需要你自己释放
888228 2008-10-06
  • 打赏
  • 举报
回复
做个构析 把 System.GC.Collect(); 放进去 ,这样在每次调用该类结束后强制进行垃圾回收。
所有.net开发的资源皆为托管资源,没有直接对内存操作的功能。
贫僧又回来了 2008-10-06
  • 打赏
  • 举报
回复
Dispose会调用Close方法.
close只是关闭窗口却不释放资源!
Dispose将释放所有占用的资源!
NowtAngell 2008-10-06
  • 打赏
  • 举报
回复
用个傻办法?
..
USING()
{
}
可以不?..
上面说的没错,GC垃圾回收系统是会释放资源 问题不会立刻刷新或释放
warrior 2008-10-05
  • 打赏
  • 举报
回复
这样只会主动释放非受控资源,如GDI资源,但是受控内存还需要等待GC进行回收,并不是调用后就立即释放的。
Eagle_ice 2008-10-05
  • 打赏
  • 举报
回复
连接对象是空的话,就释放了资源,但是它还没关闭吧...
Eagle_ice 2008-10-05
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 ZengHD 的回复:]
this.Close();
this.Dispose();
好像效果是一样的吧
[/Quote]
不一样的吧?
ZengHD 2008-10-05
  • 打赏
  • 举报
回复
this.Close();
this.Dispose();
好像效果是一样的吧

110,533

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧