C# WPF应用程序的关闭是否导致窗口关闭事件?

C# WPF应用程序的关闭是否导致窗口关闭事件?,c#,wpf,window,shutdown,C#,Wpf,Window,Shutdown,在我的应用程序中,我有一个主窗口,用户可以从中打开另一个WPF窗口。 当用户关闭主窗口时,我想退出应用程序,因此我编写了以下代码: private void Window_Closing(object sender, System.ComponentModel.CancelEventArgs e) { try { if (onClosingAppFlag == true)

在我的应用程序中,我有一个主窗口,用户可以从中打开另一个WPF窗口。 当用户关闭主窗口时,我想退出应用程序,因此我编写了以下代码:

  private void Window_Closing(object sender, System.ComponentModel.CancelEventArgs e)
        {
            try
            {
                if (onClosingAppFlag == true)
                    return;

                string s = "       Exit the application ?" + Environment.NewLine +
                            "(Exit process duration is about 5 seconds)" + Environment.NewLine +
                            "       Are you sure? ";
                MessageBoxResult dres = MessageBox.Show(this, s, "Exit from RTS",
                    MessageBoxButton.YesNo, MessageBoxImage.Question);
                if (dres == MessageBoxResult.No)
                {
                    e.Cancel = true;
                    return;
                }

                onClosingAppFlag = true;
                App.Current.Shutdown();
                OnClosingApp();

            }
            catch (Exception ex)
            {
                string line = "Error, Exeption occuredd at MainWindow.Window_Closing() : " + Environment.NewLine + ex.Message;
                AppWinServices.Singleton.LogFileWrite(line);
            }
        }
但是第二个窗口仍然出现并运行,因为它有一个线程等待信号

为了防止出现这种情况,我添加了一些代码来结束线程,该线程在
Window\u Closing
事件上等待信号。现在,如果用户关闭第二个窗口,它将工作(线程停止等待,然后窗口将关闭),但是如果需要从主窗口关闭此窗口,它将不工作,窗口将继续等待

可以是
Application.Current.Shutdown()不会导致
窗口关闭。是否关闭事件?
如果不是,我如何才能停止在第二个窗口的等待,或者换句话说,在我知道窗口将要关闭的地方


谢谢

调用
Environment.Exit(0)
或在
App.xaml.cs
中将
ShutdownMode
属性设置为
OnMainWindowClose

protected override void OnStartup(StartupEventArgs e)
{
    base.OnStartup(e);
    ShutdownMode = ShutdownMode.OnMainWindowClose;
}

我无法使用关机模式,因为我需要在关闭应用程序之前做额外的事情:(在你调用该方法之前先做这些…?或者按照我的第二个建议去做。我做不到。这是否太残酷了,正如链接中所解释的那样?你不能做什么?你问过如何在不等待的情况下立即关闭应用程序,是吗?或者你的问题是什么?如果我使用关机模式,在关闭应用程序之前我不能做额外的事情。我的问题是ho我能从窗口知道它需要关闭吗。