Редактировать: Таким образом, проблема заключалась не в том, что процесс умирал, а в том, что процесс застрял в диалоговом окне обработчика исключений, ожидая, пока пользователь нажмет отладку или отмена.Решение проблемы состояло в том, чтобы отключить диалог отладки .net JIT, инструкции здесь http://weblogs.asp.net/fmarguerie/archive/2004/08/27/how-to-turn-off-disable-the-net-jit-debugging-dialog.aspx
Мое оригинальное предлагаемое решение ниже
Не оконная служба, но этодовольно простая .NET программа для написания.
используйте System.Diagnostics.Process , чтобы получить объект Process для процесса, который вы хотите проверить.Вы можете использовать GetProcessByName
, если хотите открыть существующий процесс.Если вы создадите процесс из C #, то у вас уже будет объект процесса.
Тогда вы можете WaitForExit
либо с таймаутом, либо без него на объекте Process
.или протестируйте свойство HasExited
, или зарегистрируйте обратный вызов Exited
.После завершения процесса вы можете проверить свойство ExitCode
, чтобы узнать, вернул ли процесс значение ошибки.