【问题标题】:if wpf app is not responding, then auto restart如果 wpf 应用程序没有响应,则自动重启
【发布时间】:2010-11-16 13:26:18
【问题描述】:

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

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

【问题讨论】:

    标签: c# .net wpf windows error-handling


    【解决方案1】:

    因为这是在您调试应用程序时的临时修复,所以一种可能性是作弊并使用引导程序/启动应用程序,其唯一工作是监控有问题的应用程序。通过System.Diagnostics.Process 类的Start 方法启动有问题的应用程序,然后偶尔监视返回的Process'Responding 属性。如果没有回应,做你需要做的。

    当然,重要的是,这只是在您解决实际问题时作为权宜之计。长期做这样的事情有很多小问题。

    【讨论】:

      【解决方案2】:

      您可以使用 Windows Vista 中引入的 Application Recovery & Restart Manager API。这是一个非托管 (C) API,但在 Windows API Code Pack 中有可用的托管包装器。

      无论如何,这是添加到您的应用程序中的一个很好的功能,因为如果(何时!)您的应用程序崩溃,它可以为用户提供更好的体验。您甚至可以编写一个回调来保存有关用户正在执行的操作的信息,然后在应用程序重新启动时恢复该状态。

      API 最基本的用途是在应用程序启动的某处添加以下行:

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

      【讨论】:

      • +1 用于提出明确为任务设计的建议。 :)
      • 我添加了这一行,但它对我来说根本不起作用......我将上面的行放在加载的事件中。
      猜你喜欢
      • 2012-11-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-06-28
      • 1970-01-01
      • 2016-11-05
      • 2010-12-15
      • 2020-10-15
      相关资源
      最近更新 更多