# Terminate WPF/Windows forms applications....



## MrSeanKon (Nov 24, 2012)

WPF has no concept of MDI applications. In fact Microsoft is trying to discourage any one using that form of application. I'm new to WPF and I really like MDI applications. It allows me to move quickly between windows and compare the content of different windows. Furthermore, sometime the content of one window is useful for another so I can copy and paste. I think it's a great user experience for working mode.
To continue, download the attachment!
It includes two folders, they are very simple code.
The point is how you can terminate an application (Windows Form and WPF).


----------



## Kreij (Nov 25, 2012)

If you do want to use something like MDI in WPF you can look at WPDMDI over at Codeplex.


----------



## FordGT90Concept (Nov 25, 2012)

http://msdn.microsoft.com/en-us/library/ms597013.aspx

Application.Current.Shutdown()


WPF is just a displayer of data.  If you want to "compare the content" then you should compare the underlying, databound collections.  Copying and pasting is also performed via the databound collections.


Edit: Technically the correct method to terminate an application is to end all threads...

In console programs, the thread that runs the console is the main thread.  Close the application by making sure nothing is keeping the main thread open (e.g. Console.ReadKey() or close all worker threads).

In WinForms and WPF programs, the thread that runs the main form is the main thread.  Call this.Close() from within the form to gracefully terminate the application.  If there are worker threads that are busy, make sure to close them before calling this.Close().

All applications gracefully terminate when all their threads are closed.  The only scenario where Shutdown(), Exit(), or similar should be called is in the case of major, unrecoverable error.


----------

