【问题标题】:Windows .Net application crash watchdogWindows .Net 应用程序崩溃看门狗
【发布时间】:2012-01-14 20:47:01
【问题描述】:

我正在为展览装置创建一个小型信息亭应用程序。我使用 .Net 和 C# 进行开发,计算机将运行 Windows 7。

现在,设置某种看门狗的最简单方法是什么,该看门狗会杀死进程并在它挂起时重新启动它。或者如果出现异常,是否会关闭错误窗口并重新启动应用程序?

谢谢!

【问题讨论】:

    标签: .net windows crash watchdog


    【解决方案1】:

    最简单的方法是编写自助服务终端应用程序,使其不会崩溃或挂起。当您可以花时间制作您正在观看的应用程序时,为什么还要花时间编写可能有其自身问题的看门狗?

    【讨论】:

    • 我当然会这样做。我没有设计系统,使崩溃成为其功能的一部分。但在现实世界中你永远不知道 - 所以万一它崩溃(出于什么原因)我想处理它。
    • 我和@Mat 在一起——你不系安全带是因为你会撞车,你系安全带是因为无论你多么小心,你都无法保证 i> 它不会发生......
    • 让我想起了我的产品组中有人说,“让我们用 f5 键刷新 ui 窗口,以防它与数据模型不同步。”。我的回答是:“我们为什么不直接修复导致它不同步的错误呢?”
    【解决方案2】:

    我假设 kiosk 应用程序作为常规 UI 应用程序而不是服务启动。

    如果是这种情况,我会编写一个小型 shell 应用程序,它是实际启动的应用程序,当它启动时,它将作为一个单独的进程启动 kiosk 应用程序,然后进入一个循环检查每隔几秒检查一次自助服务终端应用的运行状况,然后进入睡眠状态(thread.idle、doevents 等任何需要)。

    您可以通过保留对已启动进程的引用来检查自助服务终端应用的运行状况,并检查它是否已退出。

    您还可以执行一些简单的操作,例如让信息亭通过后台工作线程定期更新一个小文件。监控应用程序可以检查此文件的更新时间,如果在特定时间段内没有更新,您可以假设信息亭应用程序已锁定并终止该进程,该进程将在接下来通过监控应用的循环。

    【讨论】:

      【解决方案3】:

      【讨论】:

        猜你喜欢
        • 2013-05-19
        • 2020-11-11
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-04-25
        • 2017-08-04
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多