这个话题已经很多前辈已经提及或者说明过,不过今天我还是来炒下冷饭.
很多人在论坛上问及,在不修改现有项目的前提下如何监控其控制台输出?这里我们就需要用到ProcessStartInfo中的RedirectStandardOutput以及StandardOutput属性.
关于StandardOutput以及RedirectStandardOutput,我不在此罗嗦,有兴趣的可以参考下MSDN:
http://msdn.microsoft.com/zh-cn/library/system.diagnostics.processstartinfo.redirectstandardoutput(v=vs.80).aspx
而且其中微软已经给了Stream.ReadToEnd的方法来读取所有的输出.
以下的的例子中提及的是如何逐行输出以及如何及时的输出.
首先准备一个被监控的控制台进程,以下例子为逐行输出
代码如下:
很多人在论坛上问及,在不修改现有项目的前提下如何监控其控制台输出?这里我们就需要用到ProcessStartInfo中的RedirectStandardOutput以及StandardOutput属性.
关于StandardOutput以及RedirectStandardOutput,我不在此罗嗦,有兴趣的可以参考下MSDN:
http://msdn.microsoft.com/zh-cn/library/system.diagnostics.processstartinfo.redirectstandardoutput(v=vs.80).aspx
而且其中微软已经给了Stream.ReadToEnd的方法来读取所有的输出.
以下的的例子中提及的是如何逐行输出以及如何及时的输出.
首先准备一个被监控的控制台进程,以下例子为逐行输出
代码如下:
-
C# code
-
view plain static void Main( string [] args) { while ( true ) { Console.WriteLine( " Testing in : " + DateTime.Now.ToString()); System.Threading.Thread.Sleep(