我正在启动一个流程,并希望检查其退出代码是否成功。
Process myProcess = new Process();
myProcess.Start();
myProcess.WaitForExit();
// What should i put instead of EXIT_SUCCESS ?
if (myProcess.ExitCode == EXIT_SUCCESS)
{
// Do something
}
EXIT_SUCCESS
似乎不存在,C#中是否存在等效或规范的方式来检查零点?
答案 0 :(得分:7)
您可以在MSDN上找到System Error Codes参考:
<强> ERROR_SUCCESS 强>
0(0x0) 操作成功完成。
由于它是唯一的成功代码和其他错误代码,因此该部分称为错误代码。这并非针对C#,仅适用于Windows。
另请注意,您可以扫描过程的标准输入/输出/错误流:
如果您使用的是非Windows环境,则应检查相关参考。
答案 1 :(得分:2)
从C / C ++代码中,通常将这些代码定义为使用这些代码的某些include头中的常量。所以你通常会有这样的事情:
#define EXIT_SUCCESS 0
其他一些可能的返回码的类似定义。毕竟,那些&#34;退出代码&#34;只是由某些包含文件定义为常量的数值,而不是语言构造。 由于C#缺少包含和头文件,您可能需要手动定义它们:
private const int EXIT_SUCCESS = 0
然后只需在代码中使用任何其他常量。因此,您的示例代码现在将按预期编译和工作
if (myProcess.ExitCode == EXIT_SUCCESS)
{
// Do something
}
答案 2 :(得分:0)
在检查ExitCode之前,您应该首先检查HasExited属性。否则,它将抛出异常。
if (myProcess.HasExited) {
//then check exit code
}
像@DalmTo所说,退出代码取决于应用程序。但按照惯例,零值相当于EXIT_SUCCESS。