我正在尝试重定向游戏服务器进程的输出,但我没有收到大部分输出。
Here's a image of what such a server looks like.
现在,我能够收到黄线,但其他一切都没有显示出来,无论是在控制台还是在我的最后。
有什么想法吗?
Process p = new Process();
p.StartInfo.FileName = file;
p.StartInfo.Arguments = arguments;
p.StartInfo.UseShellExecute = false;
p.StartInfo.RedirectStandardOutput = true;
p.StartInfo.RedirectStandardError = true;
p.OutputDataReceived += new DataReceivedEventHandler(OutputHandler);
p.ErrorDataReceived += new DataReceivedEventHandler(ErrorHandler);
p.Start();
p.BeginOutputReadLine();
p.BeginErrorReadLine();
private void OutputHandler(object sendingProcess, DataReceivedEventArgs outLine)
{
...
}
private void ErrorHandler(object sendingProcess, DataReceivedEventArgs outLine)
{
...
}
答案 0 :(得分:0)
您还需要在输出内容时刷新输出缓冲区。如果不进行刷新,输出缓冲区可能会持续到外部进程退出为止;这使得主应用程序无法捕获输出“实时”