在C#中以Process.Kill()终止进程的退出代码

时间:2010-03-16 14:38:37

标签: c# exit-code kill-process

如果在我的C#应用​​程序中,我正在创建一个可以正常终止或开始行为不端的子进程,在这种情况下我通过调用Process.Kill()来终止它。但是,我想知道是否进程已经正常退出。我知道我可以获得已终止进程的错误代码,但是什么是正常的退出代码以及什么意味着该进程被杀死了?

2 个答案:

答案 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