Max*_*lov 3 c# wpf user-controls dispose
我的问题是关于WPF中的内存处理.我创建了一个用户控件,但是XAML只包含标准的WPF控件.此时我没有在代码隐藏中实现任何代码.
在我的应用程序中,我创建了一个用户控件的实例,以显示给用户.当我不再需要用户控件时,我可以将它的引用变量赋值为null值.
我是否需要自己编写.Dispose方法并在我的用户控件中处理内部控件?或者将这项工作留给垃圾收集者是一种好习惯吗?谢谢.
Ree*_*sey 6
通常,在WPF中,您不需要进行控制IDisposable.与Windows窗体不同,WPF UIElement对象是完全托管的,而不是(通常)包装本机句柄.因此,它们不需要处理,并且可以留给垃圾收集器.
IDisposable
UIElement
这就是为什么UserControl不实施IDisposable.
UserControl
当然也有例外.例如,如果您的类封装了从HwndHost(例如WebBrowser)派生的任何内容,您可能希望创建类IDisposable以调用Dispose()封装的控件.这通常仅在互操作场景中需要(即:WebBrowser,与本机浏览器控件互操作).
HwndHost
Dispose()
WebBrowser
归档时间:
15 年,7 月 前
查看次数:
1042 次
最近记录: