如果wpf应用程序没有响应,然后自动重启

我有一个偶尔崩溃的WPF应用程序,并说“没有回应”。 有没有办法来检测程序是否没有响应? 如果是的话,重新启动WPF应用程序?

这将是一个临时的修复,直到错误修复。

Solutions Collecting From Web of "如果wpf应用程序没有响应,然后自动重启"

您可以使用Windows Vista中引入的应用程序恢复和重新启动管理器API。 这是一个非托管(C)API,但在Windows API代码包中有可用的托管包装。

无论如何,这是一个很好的功能添加到您的应用程序,因为它提供了一个更好的经验,如果(当!)你的应用程序崩溃。 你甚至可以编写一个回调函数来保存关于用户正在做什么的信息,然后在应用程序重新启动时恢复这个状态。

API的最基本用法是在应用程序启动的某个地方添加下面一行:

ApplicationRestartRecoveryManager.RegisterForApplicationRestart( new RestartSettings( "restart", RestartRestrictions.None ) ); 

由于在调试应用程序时这是一个临时性的修复,所以一种可能性是欺骗并使用一个启动应用程序/启动应用程序,其唯一的工作是监视有问题的应用程序。 通过System.Diagnostics.Process类的Start方法启动有问题的应用程序,然后偶尔监视返回的Responding属性。 如果没有回应,就做你需要做的事情。

当然,当你解决真正的问题的时候,这只是作为一个权宜之计,这一点很重要。 长期做这样的事情有很多小问题。