• C# Form.Close 的释放问题


    今天使用From窗口Close后,发现From的资源还存在,并没有释放资源,只有在程序关闭的时候才去释放。

    Form1:button按钮 

    private void button1_Click(object sender, EventArgs e)
    {
      Form2 frm = new Form2();
      frm.ShowDialog();
    }

    Form2:

    public Form2()
    {
      InitializeComponent();
      Trace.WriteLine("From2 InitializeComponent");
    }

    ~Form2()
    {
      Trace.WriteLine("From2 dispose");
    }

    操作:From1点击按钮打开From2,然后关闭Form2,再打开Form2,关闭From2,最后关闭程序。看到的打印是

    说明Close 并没有释放资源,只有在程序退出的时候才自动释放

    ps:在以下两种情况下调用 Close 不会释放窗体:(1) 窗体是多文档界面 (MDI) 应用程序的一部分且是不可见的;(2) 您是使用 ShowDialog 显示的该窗体。在这些情况下,需要手动调用 Dispose 来将窗体的所有控件都标记为需要进行垃圾回收。

  • 相关阅读:
    搜索1011
    搜索1008(二分)
    贪心算法专题总结
    贪心算法1002
    c++笔记
    贪心算法1017
    贪心算法1008
    贪心算法1013
    Ubuntu中 sudo update与sudo upgrade的作用及区别
    requirejs 扩展,支持脚本资源预加载
  • 原文地址:https://www.cnblogs.com/rainchao/p/4876855.html
Copyright © 2020-2023  润新知