通行证: 用户 密码
http://www.pconline.cn/
汽车网 | 游戏网 | 时尚女性
分站:北京 上海 广州 深圳 香港
广西 重庆 山东 江苏 辽宁 福建
首 页 | 今日报价 | 新闻中心 | 数码世界 | 硬件资讯 | 软件资讯 | 下 载 | 游 戏 |
论 坛 | 产 品 库 | 渠道商情 | 招聘培训 | 二    手 | 评 测 室 | 导 购 | 社 区 |
摄影
部落
手 机
数码相机
随身听
 DIY配件
笔记本
 台式机
摄像机
精品廊
-
您现在的位置:软件资讯 > 开发特区 > .net技术 > C#
  利用Visual C#实现Window管道技术 出处:c#社区
[ 2005-06-17 10:20:08 ] 作者:snaill 责任编辑:moningfeng
-
  管道技术一般采用Window API来实现,最近试着用C#来实现Windows管道技术,发现C#本身方便的进程线程机制使工作变得简单至极,随手记录一下,推荐给大家。


  首先,我们可以通过设置Process类,获取输出接口,代码如下:

  Process proc = new Process();
  proc .StartInfo.FileName = strScript;
  proc .StartInfo.WorkingDirectory = strDirectory;
  proc .StartInfo.CreateNoWindow = true;
  proc .StartInfo.UseShellExecute = false;
  proc .StartInfo.RedirectStandardOutput = true;
  proc .Start();



  然后设置线程连续读取输出的字符串:

  eventOutput = new AutoResetEvent(false);
  AutoResetEvent[] events = new AutoResetEvent[1];
  events[0] = m_eventOutput;

  m_threadOutput = new Thread( new ThreadStart( DisplayOutput ) );
  m_threadOutput.Start();
  WaitHandle.WaitAll( events );



  线程函数如下:

  private void DisplayOutput()
  {
   while ( m_procScript != null && !m_procScript.HasExited )
   {
   string strLine = null;
   while ( ( strLine = m_procScript.StandardOutput.ReadLine() ) != null)
   {
    m_txtOutput.AppendText( strLine + "\r\n" );
    m_txtOutput.SelectionStart = m_txtOutput.Text.Length;
    m_txtOutput.ScrollToCaret();
   }
   Thread.Sleep( 100 );
   }
   m_eventOutput.Set();
  }



  这里要注意的是,使用以下语句使TextBox显示的总是最新添加的,而AppendText而不使用+=,是因为+=会造成整个TextBox的回显使得整个显示区域闪烁

  m_txtOutput.AppendText( strLine + "\r\n" );
  m_txtOutput.SelectionStart = m_txtOutput.Text.Length;
  m_txtOutput.ScrollToCaret();



  为了不阻塞主线程,可以将整个过程放到另一个线程里就可以了。
天敏贴纸相框设计大赛,千元大奖等你拿!


正在加载评论,请稍候…

ad
发给好友 我要报错 投稿给我们 加入收藏 返回顶部

本栏今日更新
相关文章
·Longhorn未到,RAW图片阅览器先行
·新特性抢先看!DivX 6正式发布
·电影效果一流,WinDVD 7复仇现光彩
·借东风!Google软件也玩捆绑发布
·魔炫魅力:QQ2005 beta2新功能快速上手
·表情[人物]:可爱MM想睡觉
·反抗!与讨厌的垃圾邮件全面决战
·解决ASP执行DB查询中的特殊字符问题
·C# 特性(Attribute)入门教程
·使用Visual C#制作可伸缩个性化窗体
·用Visual C#打造个性化的IE浏览器
·C#中简单调用c/c++旧模块
·三种使用SMTP协议发送邮件的方法
·C#编程让Outlook乖乖交出帐户密码
·C#实现Web文件上传的两种方法
·浅谈网络时间校正原理及实践运用

完美时尚娱乐:2004年腾讯QQ评测大观
精彩无限:MSN Shell4使用指南
亲手制作鲜花情人贺卡送给她
挑战伏明霞?企鹅跳水游戏,看你能得多少分?

新闻搜索
高级搜索
Flash排行榜
·《老鼠爱大米》黑白版
·超好玩小游戏!淘金者
·Take Me To Your Heart
·当你孤单你会想起谁
·飞儿乐队:我们的爱
·下辈子如果我还记得你
·酸酸甜甜就是我
·别说我的眼泪你无所谓
·大学自习室继-就说
·林俊杰-一千年以后
热点专题
·玩转MSN技巧,带给您好心情!
·电脑艺术设计大师之路连载
·老歌歪唱Flash MV爆笑欣赏
·2005年XP SP2全新技巧放送
·视频轻松学Dreamweaver教程
·瞩目!QQ2005 Beta1火热发布
·全面了解FireFox浏览器
·情人节感动MM的十首MV
·搜索技巧总汇:体验网罗天下的乐趣
·网络原创音乐Flash大收集
·挑战30天 C/C++ 入门极限系列教程
·视频教程专栏, 助你轻松学软件
IT培训十大热门文章
-