WPF关闭应用程序,释放Window窗口资源方法
WindowsForm里一個(gè)Application.Exit();方法就可以關(guān)閉應(yīng)用程序,釋放掉資源。
WPF里Application類(lèi)沒(méi)有該方法,但是有一個(gè)Exit的事件驅(qū)動(dòng),在WPF應(yīng)用程序里面關(guān)閉程序講究很多:
在WPF應(yīng)用程序的關(guān)閉是有ShutdownMode屬性設(shè)置,具有3中枚舉類(lèi)型的值:
1)OnLastWindowClose 應(yīng)用程序最后一個(gè)窗體關(guān)閉時(shí)關(guān)閉應(yīng)用程序
2)OnMainWindowClose 應(yīng)用程序主窗體關(guān)閉時(shí)關(guān)閉應(yīng)用程序
3)OnExplicitShutdown?? 顯示調(diào)用關(guān)閉
在OnExplicitShutdown模式下必須顯示調(diào)用Application實(shí)例的ShutDown方法
例如:Application.Current.Shutdown(-1);
Application.Current.ShutdownMode=ShutdownMode.OnLastWindowClose;
這里Application.Current返回當(dāng)前應(yīng)用程序的當(dāng)前Application實(shí)例。
注意以上不適應(yīng)XBAP,XBAP在瀏覽器關(guān)閉時(shí)自動(dòng)關(guān)閉。
例如在.cs里面
??? protected override void OnClosed(EventArgs e)
??????? {
??????????? //Application.Current.ShutdownMode = ShutdownMode.OnMainWindowClose;
??????????? //if (this.IsAfreshLogin == true) return;
??????????? Application.Current.Shutdown();
??????????? base.OnClosed(e);
??????? }
另外,還有一種強(qiáng)制終止應(yīng)用程序進(jìn)程的方法
Environment.Exit(0)可以立即中斷程序執(zhí)行并退出
這個(gè)方法用起來(lái)的感覺(jué)類(lèi)似在任務(wù)管理器里找到進(jìn)程并終止,即立刻關(guān)閉進(jìn)程,不管該進(jìn)程目前有沒(méi)有工作,在做什么工作。
在WPF中調(diào)用該方法即立即退出,不會(huì)等待當(dāng)前工作完成。
需求:需要在許多子窗體中關(guān)閉整個(gè)程序(WPF)
winform實(shí)現(xiàn):Application.Exit();
轉(zhuǎn)載于:https://www.cnblogs.com/GeneralKING/archive/2012/08/24/2654657.html
總結(jié)
以上是生活随笔為你收集整理的WPF关闭应用程序,释放Window窗口资源方法的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: Table doesn't have a
- 下一篇: !! 机器学习常用工具