Dispose没有释放内存

wozhaozhe2008 2020-01-02 10:56:36

public void ShowLoadDlg()
{
LoadDlg = new Form();
LoadDlg.Show();
}
public void CloseDlg()
{
LoadDlg.Dispose();
}
我执行ShowLoadDlg()后在调用CloseDlg()。用IsDispose判断是已经释放成功了的。
但内存没有被释放,
如果我一直创建再关闭。那么内存会一直增加,而并不会减少。
...全文
354 8 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
正怒月神 2020-01-03
  • 打赏
  • 举报
回复
GC.Collect()看看吧,
但我个人感觉没必要
  • 打赏
  • 举报
回复
应用程序启动时CLR会分配虚拟空间大小,当应用程序所需内存大于这个值时,会频繁的发生GC操作,也就是压缩那些无引用的对象所占用的内存,可以说是那些“已经离开作用域”或者调用dispose方法的对象。GC有自己的算法来度量应用程序运行时所占内存的变化,以确保程序能够处于最佳状态。
datafansbj 2020-01-03
  • 打赏
  • 举报
回复
Dispose 仅仅表示我不再使用这个对象,可以释放了。至于究竟何时释放出内存,是由垃圾收集器来自动处理的,我们不必关心。
ying1234 2020-01-03
  • 打赏
  • 举报
回复
并不是Disponse()了马上就会回收内存,这个你不用操心了。
wozhaozhe2008 2020-01-03
  • 打赏
  • 举报
回复
引用 4 楼 正怒月神 的回复:
GC.Collect()看看吧,
但我个人感觉没必要

你这方式可以立即释放。
wozhaozhe2008 2020-01-03
  • 打赏
  • 举报
回复
引用 6 楼 兔子家族-二哥 的回复:
LoadDlg 直接关闭撒? LoadDlg.Close() 你看看呢
一样的。我试过了 并不会立即释放内存
  • 打赏
  • 举报
回复
LoadDlg 直接关闭撒? LoadDlg.Close() 你看看呢
wozhaozhe2008 2020-01-03
  • 打赏
  • 举报
回复
谢谢!懂了,我还以为我没释放成功呢

111,095

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • AIGC Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧