次のような小さなクラスから呼び出す大きな winform クラスがあります。
void login()
{
mainForm f1 = new mainForm();
f1.ShowDialog();
}
mainForm は、ログイン後に大量のメモリを消費します (タスク マネージャーで確認します)。mainForm を閉じると、プログラムはログイン フォームに戻ります。このステップで、もう一度タスク マネージャーを確認すると、プログラムが mainForm が使用していたメモリを解放していないことがわかります。ログインした後、プログラムがクラッシュし、「メモリ不足」エラーが表示されます。
f1.Dispose()、f1=null、GC.Collect()、および見つけた他のすべてのメソッドをテストしたと言わざるを得ません。
ログインフォームを閉じたときにのみメモリが解放されます(Application.Runで使用される開始クラスです)
プログラムを閉じるときと同じように、mainForm インスタンス (f1) とこのフォームのすべてのリソースを破棄したいと考えています。