【发布时间】:2017-05-08 18:47:50
【问题描述】:
我有 vb.net winforms 应用程序。它有由第三方控制引起的内存泄漏。我只能选择减少而不是消除内存泄漏。
表单有多个声明为 Friend WithEvents 的用户控件。当窗体关闭时,它们不会被 GC,因为窗体在内存中并且它持有对用户控件的引用。但是,当我在 dispose 上将用户控件引用设置为空时,内存泄漏就会减少。
现在我想将其扩展到整个应用程序,而不仅仅是一种形式。我将如何使用反射来扫描所有用户控件并将它们设置为空 dispose ?有趣的是,用户控件是使用“Friend WithEvents”签名声明的。是否可以在扫描时以某种方式使用它?
【问题讨论】:
-
您不需要反射,只需
Dispose您创建的任何控件。如果其他东西是实际的 UserControl,则内置处理其子控件(除非它们也在做动态控件)
标签: vb.net winforms reflection memory-leaks