我在重定向应用程序的标准输出时遇到了问题。这似乎是.NET中的某种bug。
我正在运行Live555ProxyServer,但是即使当控制台启动时也没有得到任何输出,即使控制台有一个书面输出。此代码适用于任何其他控制台应用程序,但不适用于此应用程序。
void StartProcess()
{
var process = new Process();
process.StartInfo.FileName = @"live555ProxyServer.exe";
process.StartInfo.Arguments = "-R";
process.StartInfo.UseShellExecute = false;
process.StartInfo.RedirectStandardOutput = true;
process.OutputDataReceived += process_OutputDataReceived;
process.Start();
process.BeginOutputReadLine();
}
void process_OutputDataReceived(object sender, DataReceivedEventArgs e)
{
Debug.WriteLine(e.Data);
}该应用程序的源代码可以找到这里。
发布于 2015-04-30 12:28:59
这是因为所有输出都流向stderr而不是stdout,请参阅源代码
您应该为Process.ErrorDataReceived添加一个处理程序,并调用Process.BeginErrorReadLine,事情将开始顺利进行。
https://stackoverflow.com/questions/29967590
复制相似问题