C# 使用Process.Start捕获控制台输出

C# 使用Process.Start捕获控制台输出,c#,multithreading,C#,Multithreading,不幸的是,我是C#的新手,这应该是一个愚蠢的问题,但我需要它,希望有人能帮我 根据这篇文章: 我需要使用第一个代码示例,但应用第二个,如作者所述。他曾谈到要在第一段代码中替换第二段代码,但我真的不知道要删除和/或替换多少代码 如果可能的话,我想有一个工作的例子 提前感谢您的帮助:-)给出以下描述: 您将删除事件订阅和对process.BeginOutputReadLine()的调用 他说的是这两句话: process.OutputDataReceived += (o, e) => { if

不幸的是,我是C#的新手,这应该是一个愚蠢的问题,但我需要它,希望有人能帮我

根据这篇文章:

我需要使用第一个代码示例,但应用第二个,如作者所述。他曾谈到要在第一段代码中替换第二段代码,但我真的不知道要删除和/或替换多少代码

如果可能的话,我想有一个工作的例子

提前感谢您的帮助:-)

给出以下描述:

您将删除事件订阅和对
process.BeginOutputReadLine()的调用

他说的是这两句话:

process.OutputDataReceived += (o, e) => { if (e.Data == null) mreOut.Set(); else output(e.Data); };
process.BeginOutputReadLine();
请注意,您要替换的代码应该是:

new ReadOutput(process.StandardInput, mreOut);

ReadOutput
类将在
Run
方法之外(因为在C#中,方法不能包含类)。

谢谢MainMa,非常感谢。您认为这是读取控制台输出的最佳方式吗?我发现很少有应用程序在进程完成之前不会刷新输出,上面描述的方式应该是“实时”任何应用程序输出?