Question

I have a WPF/C# 4.0 App wich Application file XAML 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?

Thanks in advance,

Sérgio

Was it helpful?

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?

OTHER TIPS

Application_Exit method will call when you shutdown the application by Application.Current.Shutdown() method or close all windows from your application. (it will call when last window will be closed).

If you call Application.Current.Shutdown() method then it will automatically close all opened windows. Pleaese make sure that your all windows are closed or not ?

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top