Сторожевой таймер сбоя приложения Windows .Net - PullRequest
0 голосов
/ 15 января 2012

Я создаю маленькое приложение для киоска для выставочной инсталляции.Я работаю в .Net & C #, и компьютер будет работать под управлением Windows 7.

Теперь, какой самый простой способ настроить какой-нибудь сторожевой таймер, который убьет процесс и перезапустит его в случае зависания.или, если вызвано исключение, закроет окна ошибок и перезапустит приложение?

спасибо!

Ответы [ 3 ]

0 голосов
/ 15 января 2012

Я предполагаю, что приложение киоска запускается как обычное приложение пользовательского интерфейса, а не как служба.

Если это так, я бы написал небольшое приложение-оболочку, которое действительно запускается, и когда оно запускается, оно запускает приложение киоска как отдельный процесс, а затем заходит в цикл, где проверяется здоровье приложения киоска каждые несколько секунд, а затем переходит в режим сна (thread.idle, doevents, все, что нужно).

Вы можете проверить работоспособность приложения киоска, сохранив ссылку на процесс, который был запущен, и проверить, не завершился ли он.

Вы также можете сделать что-то столь же простое, как сделать так, чтобы киоск регулярно обновлял небольшой файл через фоновый рабочий поток. Приложение мониторинга может проверять время обновления этого файла, и, если оно не обновлялось в течение определенного периода времени, можно предположить, что приложение киоска заблокировано, и завершить процесс, который будет перезапущен снова на следующий проход через цикл приложения мониторинга.

0 голосов
/ 25 июня 2012

Windows имеет сторожевой таймер: http://www.codeproject.com/Articles/11616/Watch-Dog

0 голосов
/ 15 января 2012

Самый простой способ - написать приложение для киоска, чтобы оно не зависало или не зависало.Зачем тратить время на написание сторожевого таймера, у которого могут быть свои проблемы, если вы можете потратить время на создание приложения, которое вы смотрите, пуленепробиваемого?

...