【问题标题】:How close WinRT app after fatal error致命错误后如何关闭 WinRT 应用程序
【发布时间】:2014-01-27 07:16:57
【问题描述】:

我正在寻找一种在 致命 错误后关闭 WinRT 应用程序的好方法。

这应该只在最后机会错误处理程序 TaskScheduler.UnobserveTaskExcptionApp.UnhandledException 中使用,我显然未能在正确的地方正确处理它。永远不应该发生,但是......

期望的行为: 然后应用程序应该显示“抱歉”消息,记录异常,并且在用户单击确定按钮后,应用程序应该关闭。

我搜索了解决方案,很多结果指出我不能以编程方式关闭 WinRT。例如。这里programatically close win8 app。 当我调用 Exit 方法时,应用程序已关闭,但随后会引发异常,例如 无法执行此操作,因为应用程序正在关闭......等等。让我有点紧张。

你会如何解决我的问题?在未处理的异常之后保持应用程序运行是没有意义的,并且通过设置 Handled = false 让它崩溃也不是好的解决方案。除此之外,UnobservedExceptions 不会触发崩溃。我听说有崩溃的应用程序将从商店中删除。

感谢您的想法!

【问题讨论】:

    标签: windows-runtime


    【解决方案1】:

    参考微软提供的应用程序生命周期,应用程序应该在没有任何警告的情况下终止并将用户返回到开始屏幕。

    http://msdn.microsoft.com/en-us/library/windows/apps/hh464925.aspx#app_crash

    【讨论】:

      【解决方案2】:

      您根本不应该关闭以 Windows 运行时为目标的应用程序。内置的应用生命周期管理系统考虑了许多因素,包括使用情况统计信息和当前系统资源,并且几乎肯定会比您更好地决定何时关闭应用。

      【讨论】:

      • 我知道这个问题。但是,当抛出一些致命的异常时,我该怎么办?让应用程序在某些损坏的状态下继续运行并不是一个好主意……当然,我首先会尝试避免这种状态,但以防万一呢?
      • 在移植测试用例以在 WinRT 上运行以在它们完成时以编程方式杀死它们以实现自动化目的,这也将非常有帮助。并非所有以 WinRT 为目标的程序都适用于生产用途。幸运的是,stackoverflow.com/questions/9028373 中有几个选项
      猜你喜欢
      • 2021-11-07
      • 2013-05-10
      • 2012-12-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-03
      相关资源
      最近更新 更多