" StandardOut尚未重定向或流程尚未开始"在Process.GetProcessById()之后

时间:2016-06-16 19:58:04

标签: c# process

我在方法中有这个代码:

int startApp()
{
  ProcessStartInfo proc = new ProcessStartInfo();
  proc.FileName = "File.exe";
  proc.Arguments = "someArguments";
  proc.RedirectStandardInput = false;
  proc.RedirectStandardOutput = true;
  proc.UseShellExecute = false;
  proc.CreateNoWindow = true;

  Process p = Process.Start(proc);
  Console.WriteLine(p.StandardOutput.ReadLine()); // Here it works!

  return p.Id;
}

然后我使用前一个方法返回的进程ID运行此代码:

void readText(int processId)
{
  Process p = Process.GetProcessById(processId);
  Console.WriteLine(p.StandardOutput.ReadLine()); // Here does not work!
}

它无法说"StandardOut has not been redirected or the process hasn't started yet"

有人知道为什么我无法从Process.StandardOutput读取?

1 个答案:

答案 0 :(得分:3)

你做不到;如果你启动了这个过程,你只能使用标准{输入,输出,错误},甚至只能从启动它的过程对象开始。

安排使用于启动过程的过程对象可用于需要读取标准输出的代码。