Обнаружение зависания приложения с помощью элементов управления ActiveX в .Net - PullRequest
2 голосов
/ 12 сентября 2008

Я работаю над обновлением приложения для очистки экрана. Мы используем элемент управления ActiveX для очистки экранов от мэйнфрейма IBM. Программа мэйнфрейма часто зависает и вылетает из-за элемента управления ActiveX, вызывая сбой нашего приложения. У нас нет доступа к мэйнфрейму или исходному коду ActiveX. Мы не собираемся писать свой собственный активный элемент управления x.

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

Должен ли я создать 2 отдельных приложения? Один как контроллер, который проверяет другой и убивает / перезапускает процесс, когда он зависает?

Должны ли они находиться в отдельных доменах приложений? Возможно ли, чтобы две программы взаимодействовали друг с другом, даже если они находятся в разных доменах приложений?

1 Ответ

1 голос
/ 12 сентября 2008

Вы можете запустить исполняемый файл с помощью System.Diagnostics.Process.Start (). Это возвращает объект Process со свойством Responding, которое вы можете использовать для периодической проверки, если процесс все еще активен.

Для этого вам понадобятся два отдельных приложения. И приложение, которое вы отслеживаете, должно иметь главное окно, потому что мониторинг работает, проверяя, обрабатывает ли приложение все еще сообщения из очереди сообщений главного окна. Таким же образом Windows знает, как добавить «Не отвечает» в заголовок окна

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...