2010-03-16 5 views
4

Если в моем приложении C# я создаю дочерний процесс, который может либо нормально завершаться, либо начать ошибочное поведение, и в этом случае я завершаю его вызовом Process.Kill(). Однако я хотел бы знать, прошел ли процесс нормально. Я знаю, что могу получить код ошибки завершенного процесса, но что будет нормальным кодом выхода и что означало бы, что процесс был убит ?Код выхода процесса, завершенного Process.Kill(), в C#

ответ

2

Вы можете использовать свойство ExitCode, но, к сожалению, это зависит от способа создания приложения. Поэтому, если у вас есть исходный код для приложения, убедитесь, что он корректно вернется на хороший выход. См. Эту ссылку на msdn, описывая это более подробно: http://msdn.microsoft.com/en-us/library/system.diagnostics.process.exitcode.aspx

7

Исходный код для Process.Kill() в показывает установку кода выхода -1 (по состоянию на сентябрь 2012 г.). Операционная система Windows на самом деле использует 32-разрядные значения без знака для кодов выхода, но я считаю, что подписанные-unsigned-> подписанные переводы в C# должны работать (мне нужно только проверить нуль или ненулевое значение, так что это не имеет значения для мой код).

С другой стороны, это, очевидно, недокументированное поведение (почему?), Поэтому Microsoft может изменить его завтра и разбить мой код, установив код выхода на 0.

Смежные вопросы