【发布时间】:2012-07-08 14:07:11
【问题描述】:
我有一个大的 winform 类,它从一个像这样的小人那里调用:
void login()
{
mainForm f1 = new mainForm();
f1.ShowDialog();
}
mainForm 登录后会占用大量内存(我在任务管理器中查看)。关闭主窗体后,程序返回登录窗体。在这一步我再次检查任务管理器,发现我的程序没有释放 mainForm 使用的内存。登录后,我的程序崩溃并显示“内存不足”错误。
我不得不说我测试了 f1.Dispose()、f1=null、GC.Collect() 和我发现的所有其他方法。
它只会在我关闭登录表单时释放内存(它是Application.Run中使用的起始类)
我想销毁mainForm实例(f1)和这个表单的所有资源,就像我关闭程序时一样。
【问题讨论】:
-
你说你已经添加了
f1.Dispose(); f1 = null; GC.Collect();之后f1.ShowDialog();,它没有工作?另外,它是在调试还是发布? -
静态事件处理程序的味道
-
是的,我检查了我在不同论坛上找到的所有方法。什么也没发生。
标签: c# memory memory-leaks