窗体资源释放问题

davidtsui 2010-01-22 09:55:34
我使用一个方法Open()开启一个Mdi子窗体:

Open(new MdiForm1());

然后用另一个方法关闭所有的子窗体

DisposeAll(this);

但我发现,当我重复着两个操作时,内存占用越来越大。

就好像没有Disposed过,而是不停地new。

请问这样是否正常?如何才能正确地释放掉窗体?
...全文
89 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
davidtsui 2010-03-22
  • 打赏
  • 举报
回复
此方法并不凑效,但为结贴需要,还是给分了。
zhaozhijun0207 2010-01-23
  • 打赏
  • 举报
回复
this.Dispose();
hanzhaoever 2010-01-23
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 wuyq11 的回复:]
GC.Collect();
GC.WaitForPendingFinalizers();

private delegate void DelegateCloseForm();
        private void CloseForm()
        {
            if (this.InvokeRequired)
            {
                this.BeginInvoke(new DelegateCloseForm(CloseForm));
            }
            else
            {
                this.Close();
                this.Dispose();
            }
        }

[/Quote]
那位高人给小弟解释一下这段代码!谢谢
cubs870321 2010-01-23
  • 打赏
  • 举报
回复
前来学习
验证码识别 2010-01-23
  • 打赏
  • 举报
回复
UP
maxwellno1 2010-01-22
  • 打赏
  • 举报
回复
楼上正解 速度好快啊
wuyq11 2010-01-22
  • 打赏
  • 举报
回复

GC.Collect();
GC.WaitForPendingFinalizers();

private delegate void DelegateCloseForm();
private void CloseForm()
{
if (this.InvokeRequired)
{
this.BeginInvoke(new DelegateCloseForm(CloseForm));
}
else
{
this.Close();
this.Dispose();
}
}

111,120

社区成员

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

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

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