我正在使用Process.Start运行命令行实用程序.出于调试目的,我希望将其输出流传递到Visual Studio的“调试输出”面板(Debug.Write).我想实时执行此操作,而不是等待过程完成然后立即编写所有内容.
我知道从理论上讲这是可能的,但是我对Stream对象的经验不足,无法知道如何做到这一点.
解决方法:
我想这可能并不是您想要的,但是它使您走上了正确的轨道.
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);
}