Search code examples
wpfexitmainwindow

WPF app does not execute Application_Exit method when user closes main window


I have a WPF/C# 4.0 App which has an Application file XAML that is:

<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>

And its exiting method is:

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

It never passes in this piece of code when the application user closes it. Is it supposed to work this way? Am I doing something wrong?


Solution

  • I have never used it but the docs say that

    Occurs just before an application shuts down, and cannot be canceled. An application can shut down for either of the following reasons:

    • The Shutdown method of the Application object is called, either explicitly or as determined by the ShutdownMode property.
    • The user ends the session by logging off or shutting down.

    So in your case, these conditions might not be met. Have you tried changing the ShutDownMode?