【问题标题】:Exit code of a process terminated with Process.Kill() , in C#C# 中以 Process.Kill() 终止的进程的退出代码
【发布时间】:2011-01-28 03:41:31
【问题描述】:

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

【问题讨论】:

    标签: c# exit-code kill-process


    【解决方案1】:

    您可以使用属性 ExitCode,但不幸的是,这取决于应用程序的构建方式。因此,如果您有应用程序的源代码,请确保它在良好退出时正确返回。请参阅此链接到 msdn 更详细地描述这一点: http://msdn.microsoft.com/en-us/library/system.diagnostics.process.exitcode.aspx

    【讨论】:

      【解决方案2】:

      Process.Kill() 的源代码显示将退出代码设置为 -1(截至 2012 年 9 月)。 Windows 操作系统实际上使用 32 位无符号值作为退出代码,但我相信 C# 中的有符号->无符号->有符号转换应该可以工作(我只需要检查零或非零,所以没关系我的代码)。

      另一方面,这显然是未记录的行为(为什么?),因此微软明天可能会更改它,并通过将退出代码设置为 0 来破坏我的代码。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2020-09-28
        • 1970-01-01
        • 2022-07-18
        • 2015-04-11
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2022-08-11
        相关资源
        最近更新 更多