有没有办法知道WPF应用程序是否正在关闭?

use*_*719 8 wpf

我正在编写一些代码来检查我的资源是否已正确清理.

当应用程序关闭时,资源不会被清除,这很好.但是,这使我的检查代码失败.

有没有办法知道WPF应用程序是否正在关闭? - 像Application.Current.IsShuttingDown这样的东西?

Mat*_*ský 7

Application.Exit事件,你应该能够做到这一点.

如果您真的需要它作为属性,那么在您的App类中创建一个属性(您的类继承Windows.Application)并将其设置为true in the Application.Exitevent.

  • 实际上,它确实发生得太晚了(**在**窗户关闭之后),至少在我的情况下是这样。我需要在`Window.OnClosing` 事件中提供这些信息。参考资料显示会有很多指标,但它们都是私有的或内部的,因此无法使用。 (2认同)

xme*_*eko 6

    /// <summary>
    /// Hack to check if the application is shutting down.
    /// </summary>
    public static bool IsShuttingDown()
    {
        try
        {
            Application.Current.ShutdownMode = Application.Current.ShutdownMode;
            return false;
        }
        catch (Exception)
        {
            return true;
        }
    }
Run Code Online (Sandbox Code Playgroud)