Abl*_*rab 2 c# dispose memory-leaks winforms
我已经用using指令创建了我的选项表单的一个新实例,所以当我完成它时它会自动处理。我是否需要在关闭表单之前处理表单上动态创建的控件,还是在我调用时会自动处理它们this.Close()?
一般不会,所有控件都是动态创建的。通常在 InitializeComponent() 方法中,当代码出现在其他地方时,它没有根本的不同。动态删除控件会给您带来麻烦。
当他们的父被释放时,控件会被自动释放。所以只要你通过它的 Collection 属性将它们添加到它们的父级,那么你就不需要额外的代码来处理。触发器正在关闭使用 Show() 方法显示的窗体的窗口,代码中的using语句用于使用 ShowDialog() 显示的窗体。
您可以使用任务管理器检查是否正确。USER Objects使用 View + Select Columns添加列(右键单击 Windows 8 中的列表视图标题)。计数器非常可靠。重复创建和关闭表单不能不断增加显示的值。
泄漏 USER 对象是 Winforms 中一个非常常见的错误,垃圾收集器不会让您远离麻烦。始终非常警惕代码中的任何 ControlCollection.Clear() 或 Remove/At() 语句。