应用程序关闭时显示一个窗口

时间:2017-05-09 15:35:07

标签: c# wpf performance task splash

我是一个非常繁重的应用程序需要一些时间来关闭它(它还取决于它运行的电脑..但这不是现在的问题)

我希望在此关闭时间显示一个带有消息的自定义窗口,但只要我打电话给"关机"方法每个窗口都消失(除了为MessageBox做的)。

这是我试图用来实现我的目标的代码

dialog

我添加了一个messageBox只是为了检查,它确实有效。我的意思是,当我的窗口立即关闭时,MessageBox保持打开状态直到应用程序进程处于活动状态(我从Windows TaskManager检查)。

希望有人可以就此提出一些建议, 提前谢谢(:

编辑 -

所以,主要的问题是,只要我调用Application.Current.Shutdown,我的启动窗口立即关闭,而应用程序进程仍然运行一段时间(在调用shutdown之前处理我所有的东西实际上减少了这个时间有点)。

关键是我希望显示一个窗口,整个时间过程仍在进行;鉴于MessageBox的行为完全相同,我的问题是: 有没有办法让我的ClosingSplashWindow像MessageBox一样运行并且在应用程序进程真的死之前保持可见?

3 个答案:

答案 0 :(得分:1)

自Application.Current.Shutdown();将立即关闭该应用程序。也许你首先有一个标志来跟踪该应用程序正在关闭,取消Closing事件并启动资源清理,然后是Application.Current.Shutdown();试。

Application_Closing处理程序可能会再次被触发,因为您有一个标记表示您即将关闭,您可以直接退出处理程序,一切都应该是好的。

答案 1 :(得分:1)

首先,您希望有一个标志,表明您的应用程序当前正在关闭:

[{1:"zoo"}, {2:"foobar"}]

然后你应该取消关闭操作,执行一些繁重的工作并关闭你的应用程序:

private bool IsShuttingDown { get; set; }

答案 2 :(得分:0)

最后,我解决了在主应用程序进程仍在运行时创建另一个显示窗口的应用程序的问题。

我知道这不是最好的方法,但我无法以任何其他方式做到这一点..

感谢您的支持! :)