我在vb.net中创建了一个简单的项目,其中有2个表单“mainform”和“childform”。 “mainform”有一个简单发出childform.show()的按钮,“childform”有一个发出me.close()和me.dispose()的按钮。
当我运行项目时,它会显示主窗体。我点击按钮,打开子窗体。当我单击子窗体按钮时,它会关闭子窗体并且所有窗体都显示良好。
然而,当我使用JetBrains dotMemory对其进行分析时,我会在打开子窗体之前拍摄快照,然后在打开和关闭它之后拍摄另一张快照。我比较了快照,它显示了一个仍然存活的子窗体的实例。当我查看依赖链时,我发现它被“MyProject + MyForms”实例保持活着。
如果我多次打开和关闭子窗体并重新生成,则仍会有一个子窗体实例存活。
有人能解释这里发生了什么吗?