C#或VB.net中的内存管理在窗体关闭时释放内存

C#或VB.net中的内存管理在窗体关闭时释放内存,c#,C#,我在项目中使用MDI父窗体和子窗体时遇到内存管理问题。当我关闭子窗体时,为该窗体分配的内存不会被释放-我如何才能做到这一点?在正常情况下,框架(更具体地说,垃圾收集器)将处理此问题 通过对所有一次性用品调用Dispose,您可以加快处理速度 关于内存清理:一般来说,请确保执行以下操作: 如果使用完对象,请删除对该对象的所有引用。如果你在某个地方有一个引用,仅仅关闭一个窗口是不够的;可能在列表中(自MDI起)或对象引用中(在这种情况下,调用Dispose,并将其设置为null) 显式清理非托管代

我在项目中使用MDI父窗体和子窗体时遇到内存管理问题。当我关闭子窗体时,为该窗体分配的内存不会被释放-我如何才能做到这一点?

在正常情况下,框架(更具体地说,垃圾收集器)将处理此问题

通过对所有一次性用品调用
Dispose
,您可以加快处理速度

关于内存清理:一般来说,请确保执行以下操作:

  • 如果使用完对象,请删除对该对象的所有引用。如果你在某个地方有一个引用,仅仅关闭一个窗口是不够的;可能在列表中(自MDI起)或对象引用中(在这种情况下,调用
    Dispose
    ,并将其设置为
    null
  • 显式清理非托管代码:使用
    IDispose
    接口
  • 让垃圾收集器来处理它,您的代码不应该依赖于像
    GC.Collect()
    这样的东西

分配给窗体的内存未释放。你这是什么意思?你犯了什么错误?您是否在表单上使用任何外部非托管资源?如果是,则使用该资源的Dispose()方法。可能的结果之一是代码没有问题。在.net这样的垃圾收集环境中,只有当GC认为是时候释放内存时,才会将内存释放到操作系统。当你谈论“记忆未被释放”时,考虑这种可能性。