2つのフォームをコンテナ化する中規模のアプリケーションがあります。アプリケーションを開くと、最初のフォームに移動し、約17MBを消費します。次に、2番目のフォームを開き、最初のフォームを閉じます。約57MBが消費されています。2番目を閉じて、最初の33mbを再度開きます。最初の66mbを閉じて、2番目の66mbを再度開きます。このメモリが回収されないのはなぜですか?これが、現在のフォームを閉じて新しいフォームを開くために使用するコードです。
private void honButton_Click(object sender, EventArgs e)
{
System.Threading.Thread t = new System.Threading.Thread(new System.Threading.ThreadStart(ThreadProc));
this.Close();
this.Dispose();
t.Start();
}
public static void ThreadProc()
{
Application.Run(new Form1());
}