运用Visual C#完成Window管道技术
来源:互联网 发布:淘宝客鹊桥活动是什么 编辑:程序博客网 时间:2024/05/05 05:11
管道技术一般采用Window API来实现,最近我试着用C#来实现Windows管道技术,发现C#本身方便的进程线程机制使工作变得简单至极,随手记录一下,推荐给大家。
首先,我们可以通过设置Process类,获取输出接口,代码如下:
proc .StartInfo.FileName = strScript;
proc .StartInfo.WorkingDirectory = strDirectory;
proc .StartInfo.CreateNoWindow = true;
proc .StartInfo.UseShellExecute = false;
proc .StartInfo.RedirectStandardOutput = true;
proc .Start();
然后设置线程连续读取输出的字符串:
AutoResetEvent[] events = new AutoResetEvent[1];
events[0] = m_eventOutput;
m_threadOutput = new Thread( new ThreadStart( DisplayOutput ) );
m_threadOutput.Start();
WaitHandle.WaitAll( events );
线程函数如下:
{
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.SelectionStart = m_txtOutput.Text.Length;
m_txtOutput.ScrollToCaret();
为了不阻塞主线程,可以将整个过程放到一个另一个线程里就可以了
- 运用Visual C#完成Window管道技术
- 运用Visual C#完成Window管道技术
- 利用Visual C#实现Window管道技术
- 利用Visual C#实现Window管道技术
- 运用Visual C#完成断点续传
- C#实现Window管道技术
- [原创]C#实现Window管道技术
- 利用Visual C#实现Windows管道技术
- 利用Visual C#实现Windows管道技术
- 在Delphi中运用Windows管道技术简述
- 在Delphi中运用Windows管道技术简述
- 用Visual C#完成文件大成批处理
- 用Visual C#完成文件大成批处理
- 《Visual C# .NET技术内幕》
- 在Visual C#中运用API函数获取系统信息
- 在Visual C#中运用API函数获取系统信息
- 多线程在Visual C#网络编制程序里面地运用
- 在Visual C#中运用API函数获取系统信息
- 将ocx和DLL文件打包成cab文件,实现IE浏览器在线安装
- int到string的转换
- IT职场求生法则
- 代码也许确实很糟糕,但是.......
- 千龙网城乡发展频道
- 运用Visual C#完成Window管道技术
- 解决控制台中大量警告信息的问题
- STM32时钟控制RCC探究
- ext 使用
- 用Visual C#完成文件大成批处理
- ActiveSync同步使用方法
- java5, java6 的新特性
- C语言指针的初始化和赋值
- sql命令、函数