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