Emi*_*l D 5 c# exit-code kill-process
如果在我的C#应用程序中,我正在创建一个可以正常终止或者开始行为不端的子进程,在这种情况下我通过调用Process.Kill()来终止它.但是,我想知道进程是否已经退出通常.我知道我可以获得已终止进程的错误代码,但是什么是正常的退出代码以及什么意味着该进程被杀死了?
Process.Kill()的源代码显示将退出代码设置为-1(截至2012年9月).Windows操作系统实际上使用32位无符号值作为退出代码,但我相信C#中的signed-> unsigned->签名转换应该可以工作(我只需要检查零或非零,所以它无关紧要我的代码).
另一方面,这显然是未记录的行为(为什么?)因此微软明天可能会改变它并通过将退出代码设置为0来破坏我的代码.
您可以使用 ExitCode 属性,但不幸的是这取决于应用程序的构建方式。因此,如果您有应用程序的源代码,请确保它在正常退出时正确返回。请参阅此链接到 msdn 更详细地描述这一点: http://msdn.microsoft.com/en-us/library/system.diagnostics.process.exitcode.aspx