c# - 通过管道将流传输到 Debug.Write()

标签 c# .net stream stdout

我正在使用 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);
}

关于c# - 通过管道将流传输到 Debug.Write(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17370705/

相关文章:

c# - 在单租户应用程序中 guest 帐户查询 Azure AD 或 Graph

c# - 在我的机器上没有安装 StyleCop 的情况下,如何添加 StyleCop 规则抑制?

.net - 加密.Net应用程序和程序集

c# - .NET 可移植类库中的 USB 访问

Delphi:将 TComponent 保存到 Clientdataset blob 字段

c# - 使用 .NET 捕获屏幕截图

c# - ASP.Net Core Web API 捕获用于日志记录的 HTTP 请求

c# - 默认情况下,子窗体是否在主窗体的同一线程上运行?

c# - 在读取写入的内容之前,我是否需要 'rewind' 流?

c++ - std::basic_istream 或 std::basic_streambuf