垃圾收集器没有处理我不必要的资源

时间:2013-10-17 07:42:52

标签: .net vb.net

                               ClassParent
                        Has a shared Field(DataSet)
                                   |
                                   |
   --------------------------------------------------------------------------
   |                  |                   |                       |
   #                  #                   #          ~~~~~~~~~~   #
 ClassChild1         ClassChild2         ClassChild3             ClassChild'N'

上图说明了我当前案例的图片。 ClassChild1 ... N是我正在处理的表单。该表单实际上是在运行时使用该共享数据集。但我刚刚意识到,当我一个接一个地关闭所有打开的表格时,即使在我关闭所有表格后,该共享字段也没有被处理掉。

我不知道这是一种自然行为还是异常现象。如果它是异常的话,有人可以告诉我正确处理这个问题的确切方法吗?

1 个答案:

答案 0 :(得分:1)

Shared objects将不会被收集,因为它们可以在应用程序的整个生命周期内访问。这是使用共享变量的主要问题之一。他们总是在浪费/使用记忆。

您将共享变量设置为null,它将不再被引用,它将被GC收集