【发布时间】:2010-09-10 14:53:19
【问题描述】:
我在 WPF 代码后面有一个成员是一次性的(意味着它实现了 IDisposable 接口)
我没有看到任何可以从 WPF 中的 UserControl 覆盖的 Dispose 方法,因此我可以在我的 wpf 用户控件中处理该成员
在 WPF 用户控件中处理成员的正确方法是什么?
这是一个封装了实现 IDisposable 接口的私有成员的用户控件。因此,我需要在某个地方处理该成员。在传统的 winform 中,用户控件有一个可以覆盖的 Dispose 方法,因此在覆盖中我可以处理私有成员。但是在 WPF 用户控件中,没有这样的东西。所以我想知道在哪里可以处理 wpf 用户控件中的私有成员。
我的问题不是关于处置用户控件,而是在哪里处置其实现 IDisposable 接口的私有成员之一
【问题讨论】:
-
你真的需要调用Dispose()吗?这是您自己的 WPF 控件吗?它是否包装了需要清理的非托管代码?或者它是否使用了大量内存,因此需要您使用 Dispose() 来强制 GC 尽快清理?我还没有在我的任何 UserControl 上调用 Dispose(),并且(还)没有看到任何内存泄漏。您能在此处提供有关 UserControl 的更多信息吗?
-
在下面查看我的更新答案——它可能为您解决问题,因此您不必添加 Unloaded 事件处理程序。