我在 WindowsForms 解决方案中有一个存在内存泄漏问题的表单。表单通过 MainForm 上的按钮打开。多次打开后,未处理的异常会终止应用程序。
该表单在 MainForm 中有一个私有实例,并按照某些逻辑规则关闭或重新创建。
该子窗体包含来自 MainForm 的一些委托。我想代表可能会导致内存泄漏。可能当表单关闭或重新创建时,古老的实例可以保存在与代表链接的内存中。
如何以及在何处“销毁”表单中的代表?
Protected Overrides Sub Finalize() ' here?
Protected Overrides Sub OnHandleDestroyed(e As System.EventArgs) ' or here
Me._MyDelegate1 = Nothing
Me.DlgDelegate1 = Nothing
Me.DlgDelegate2 = Nothing