If you create a new WPF (XAML) Window object, and do not show it for some reason, you still have to close it or it will stick in you memory until the end of days.
- In VS2008, create a New WPF application
- In Window1, create new Button
- in the Click handler of the Button, put the following statement:
var w = new Window1();
- F5, click on the button
- Close the application: now it won't close because the Window1 instance that was created in the click handler is still somewhere in memory
- Now change the click handler and Close the window you did not open:
var w = new Window1(); w.Close();
- F5 and click and close: now the application will function normally
This seems very odd to me. Moreover, if there is some cleanup required, the Window class should implement the IDisposable interface.