通过管道将流传递给 Debug.Write()

Geo*_*uer 3 .net c# stdout stream

我正在使用 运行命令行实用程序Process.Start。出于调试目的,我希望将其输出流发送到 Visual Studio 的“调试输出”面板 ( Debug.Write)。我想实时执行此操作,而不是等待该过程完成然后立即将其全部写入。

我知道这在理论上是可能的,但我对该对象的经验不够Stream,不知道如何做到这一点。

Gra*_*ray 5

这可能不完全是您想要的,但我认为它会让您走上正轨。

p.StartInfo.UseShellExecute = false; 
p.StartInfo.RedirectStandardOutput = true;
p.OutputDataReceived += p_OutputDataReceived;
p.Start();
p.BeginOutputReadLine();
Run Code Online (Sandbox Code Playgroud)

然后,您的事件处理程序用于接收数据。

void p_OutputDataReceived(object sender, DataReceivedEventArgs e)
{
    Debug.Write(e.Data);
}
Run Code Online (Sandbox Code Playgroud)