c# form 释放问题

stzhoucj 2007-04-20 10:02:45
在c#中,可以在某个函数内执行下列语句
{
Form1 frm = new Form1();
frm.Show();
}
窗体show出来了,但是frm的作用域也完了,垃圾回收会不会自动释放这个窗体?
...全文
550 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
fenglu0717 2007-04-22
  • 打赏
  • 举报
回复
ShowDialog在你关闭当前的窗体时会自动回收。
但show不会,
按常规想就是,是对话框时,关闭了就代表不用了
而非模式的时候,还要用到
stzhoucj 2007-04-22
  • 打赏
  • 举报
回复

我总结一下,是不是Show是非模态,但是GC会等你关闭窗体后再回收,但是最好自己关闭时也调用一个Dispose

ShowDialog是模态,需要自己调用Dispose
我怀疑,ShowDialog是不是也会被自动回收?
icwin 2007-04-22
  • 打赏
  • 举报
回复
mark
maoyanyu 2007-04-21
  • 打赏
  • 举报
回复
在你关掉该form后.net会回收。
另外可以自己在form_closing中,用dispose释放
yumanqing 2007-04-21
  • 打赏
  • 举报
回复
如果把你的窗体当垃圾回收了,估计NET也没有人用了
llm89721630 2007-04-20
  • 打赏
  • 举报
回复
难道垃圾回收还会帮你把窗体关闭???
kyle315 2007-04-20
  • 打赏
  • 举报
回复
呵呵,如果释放了还怎么用啊。
liberte 2007-04-20
  • 打赏
  • 举报
回复
frm.Dispose();
smartstar2005 2007-04-20
  • 打赏
  • 举报
回复
应该自己手动Dispose一下.

jiatong1981 2007-04-20
  • 打赏
  • 举报
回复
非模态窗体 GC会自动回收
模态则不会

show()为非模态

showdialog()则为模态

110,537

社区成员

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

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

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