WPF Window 类的 IDisposable 成员

发布于 2024-10-08 02:29:37 字数 136 浏览 5 评论 0原文

当我将 IDisposable 类成员添加到 Windows 窗体 Form 类时,我将处置代码添加到 Form 的 Dispose 方法中。当我将 IDisposable 类成员添加到 WPF Window 类(不是 IDisposable)时,该怎么办?

When I add IDisposable class member to Windows Forms Form class, I add disposing code to Form's Dispose method. What should I do when I add IDisposable class member to WPF Window class, which is not IDisposable?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

十级心震 2024-10-15 02:29:37

扩展您的窗口类,使其具有 IDisposable,然后像以前一样实现 Dispose() 方法:

public class MyWindow : Window, IDisposable
{
    public void Dispose()
    {
        // Dispose your objects here as before.
    }
}

Extend your window class so that it has IDisposable, then implement the Dispose() method as before:

public class MyWindow : Window, IDisposable
{
    public void Dispose()
    {
        // Dispose your objects here as before.
    }
}
羁客 2024-10-15 02:29:37

您可以使用的方法:

  • Window上使用Closed事件。
  • 自己为此Window实现IDisposable接口。

Approaches you can use:

  • Use Closed event on Window.
  • Implement IDisposable interface yourself for this Window.
邮友 2024-10-15 02:29:37

您可以实现挂接到类终结器中的 IDisposable 模式。这意味着您的 IDisposable 成员总是会被清除。唯一的问题是你不知道什么时候,因为它取决于 GC 来收集 Window 类。

或者,您可以向 Window.Closed 事件添加一个事件处理程序,并在那里进行处理。

You could implement the IDisposable pattern that hooks into the classes finalizer. This means that your IDisposable member would always get cleared up. The only problem is that you wouldn't know when as it depends on the GC to collect the Window class.

Alternatively you could add an event handler the the Window.Closed event and do your disposing there.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文