Код выхода процесса, завершенного с помощью Process.Kill() , в C#

StackOverflow https://stackoverflow.com/questions/2455232

  •  20-09-2019
  •  | 
  •  

Вопрос

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

Это было полезно?

Решение

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

Другие советы

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

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top