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 來將窗體的所有控件都標記為需要進行垃圾回收。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM