博客园  :: 首页  :: 新随笔  :: 联系 :: 管理

2010年12月15日

摘要: .NET上控制台输出的实时截取(原文标题).NET上控制台输出的实时截取分两种不同的情况:截取子进程的输出和截取当前进程的输出。截取子进程的输出可以使用Process.StandardOutput属性取得一个StreamReader,并用它来读取输出。注意读取操作是阻塞的,可以使用异步方法调用或者Process.BeginOutputReadLine()来进行异步读取。例子如下:Process p = new Process();p.StartInfo.UseShellExecute = false; // 必须p.StartInfo.RedirectStandardOutput = true 阅读全文

posted @ 2010-12-15 18:12 codingsilence 阅读(896) 评论(0) 推荐(0) 编辑

摘要: 经常看到论坛中有人问到当用Process组件启动新的进程后,如何获取它的输出的问题。采取将子进程的输出定向到一个临时文件中,当然也能够处理问题。但是这样每次父进程从临时文件中获取消息后,还要删除该临时文件,终究比较麻烦。其实,Process提供了几个属性能够获取输出。在.net框架sdk的协助文档里面就有这方面的例子,但是对于如何同时获取错误输出和标准输出方面没有给出具体代码,本文将给出实例并对管道的特性做一些说明。一、获取子进程标准输出和错误输出的的方法:我们写一个小程序p2.cs,用它来产生标准输出和错误输出。//p2.cs代码如下:using System;class class1{pu 阅读全文

posted @ 2010-12-15 17:14 codingsilence 阅读(440) 评论(0) 推荐(0) 编辑