哪个是关闭C#WPF应用程序的首选方法?以编程方式关闭C#WPF应用程序的首选方法是什么?
1)调用(0)的主窗口内的主窗口
2)调用Application.Current.Shutdown内window.close()的。
两者在语义上是等价的还是有细微的区别,我需要注意?
哪个是关闭C#WPF应用程序的首选方法?以编程方式关闭C#WPF应用程序的首选方法是什么?
1)调用(0)的主窗口内的主窗口
2)调用Application.Current.Shutdown内window.close()的。
两者在语义上是等价的还是有细微的区别,我需要注意?
第一个只关闭窗口,取决于您的Application.ShutdownMode
甚至可能不关闭应用程序。
你怎么退出应用程序完全取决于你想要做什么,我为一个倾向于定义Application.MainWindow
并设置ShutdownMode
到OnMainWindowClose
因此,所有的小对话,不要阻止应用程序关闭(因为默认是OnLastWindowClose
)。
肯定Window.Close();
这将使所有其他窗口正确关闭并最终确定其可用资源。请注意,您应该在主窗口中调用此功能来关闭整个应用程序(即从主窗口中输入this.Close();
)。
Application.Shutdown
关闭所有打开的窗口并处理它们,同时您也有可能返回另一个退出代码。所以我会(通常)与Application.Shutdown
一起去。
尽管关闭不起作用。可能会打开后台线程或其他顶级窗口,这会阻止应用程序关闭。 – CodeNaked 2011-06-07 13:21:13
当Window.Close();从主窗口调用,所有的子窗口都被标记为关闭(实际上它们的Close()函数被调用)。我还假设线程正常地在OnClosing()事件上正确终止。 – 2011-06-07 13:23:47
您做了很多假设,并非应用程序中的所有窗口都必须属于一个主窗口。 – 2011-06-07 13:25:13