1

我有一个 WPF/C# 4.0 应用程序,它有一个应用程序文件 XAML,它是:

<Application 
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
x:Class="XXX.App"
Startup="Application_Startup"
Exit="Application_Exit"
>
<Application.Resources>
     
</Application.Resources>

它的退出方法是:

    //it seems that it never passes here. Transferred to MainAppWindow_WindowClosing
    private void Application_Exit(object sender, ExitEventArgs e)
    {
        this.Dispatcher.BeginInvokeShutdown(DispatcherPriority.Background);
    }

当应用程序用户关闭它时,它永远不会传入这段代码。它应该以这种方式工作吗?难道我做错了什么?

4

2 回答 2

6

我从未使用过它,但文档

在应用程序关闭之前发生,并且无法取消。应用程序可能因以下任一原因而关闭:

  • Application 对象的 Shutdown 方法被显式调用或由 ShutdownMode 属性确定。
  • 用户通过注销或关闭来结束会话。

因此,在您的情况下,可能无法满足这些条件。您是否尝试过更改ShutDownMode

于 2011-10-01T00:23:47.870 回答
1

当您通过 Application.Current.Shutdown() 方法关闭应用程序或关闭应用程序的所有窗口时,将调用 Application_Exit 方法。(它会在最后一个窗口关闭时调用)。

如果您调用 Application.Current.Shutdown() 方法,那么它将自动关闭所有打开的窗口。请确保您的所有窗户都已关闭?

于 2011-10-03T08:39:23.997 回答