3

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

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

4

2 回答 2

4

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

p.StartInfo.UseShellExecute = false; 
p.StartInfo.RedirectStandardOutput = true;
p.OutputDataReceived += p_OutputDataReceived;
p.Start();
p.BeginOutputReadLine();

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

void p_OutputDataReceived(object sender, DataReceivedEventArgs e)
{
    Debug.Write(e.Data);
}
于 2013-06-28T17:57:35.060 回答
1

CliWrap使处理流程变得微不足道。以下是您的特定场景的外观:

// Pipe the output directly to Debug.WriteLine
var cmd = Cli.Wrap("app.exe") | Debug.WriteLine;

await cmd.ExecuteAsync();
于 2020-04-15T20:39:41.753 回答