【发布时间】:2018-03-21 03:34:26
【问题描述】:
我正在启动一个控制台应用程序,但是当我重定向标准输出时,我总是一无所获!
当我不重定向它并将CreateNoWindow 设置为false 时,我可以在控制台中正确看到所有内容,但是当我重定向它时,StandardOutput.ReadToEnd() 总是返回一个空字符串。
Process cproc = new Process();
cproc.StartInfo.CreateNoWindow = true;
cproc.StartInfo.FileName = Dest;
cproc.StartInfo.RedirectStandardOutput = true;
cproc.StartInfo.WindowStyle = ProcessWindowStyle.Hidden;
cproc.StartInfo.UseShellExecute = false;
cproc.EnableRaisingEvents = true;
cproc.Start();
cproc.Exited += new EventHandler(cproc_Exited);
while(!stop)
{
result += cproc.StandardOutput.ReadToEnd();
}
EventHandler cproc_exited 只是将stop 设置为true。谁能解释为什么result 总是string.Empty?
【问题讨论】: