利用Visual C#實現(xiàn)Windows管道技術(shù)
2006/11/15 9:36:23
管道技術(shù)一般采用Window API來實現(xiàn),最近我試著用C#來實現(xiàn)Windows管道技術(shù),發(fā)現(xiàn)C#本身方便的進(jìn)程線程機制使工作變得簡單至極,隨手記錄一下,推薦給大家。
首先,我們可以通過設(shè)置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();
然后設(shè)置線程連續(xù)讀取輸出的字符串:
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 );
線程函數(shù)如下:
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的回顯使得整個顯示區(qū)域閃爍
m_txtOutput.AppendText( strLine + "\r\n" );
m_txtOutput.SelectionStart = m_txtOutput.Text.Length;
m_txtOutput.ScrollToCaret();
為了不阻塞主線程,可以將整個過程放到一個另一個線程里就可以了
返回列表
返回首頁
主站蜘蛛池模板:
亚洲综合色婷婷在线观看|
日本韩国中文字幕|
口国产成人高清在线播放|
精品一区二区三区色花堂|
图片区另类小说|
一个人看的毛片|
新梅金瓶2之爱奴国语|
久久综合色婷婷|
欧美日韩国产va另类|
人人色在线视频播放|
精品无码久久久久久国产|
国产乱子伦精品视频|
久久综合久久鬼|
国产精品爆乳奶水无码视频|
www.日本在线视频|
欧美va天堂在线电影|
亚洲综合精品香蕉久久网|
精品国产成人亚洲午夜福利|
国产一级一片免费播放i|
黄色网址免费大全|
国产精品99精品久久免费|
91福利视频免费|
天堂8在线天堂资源8|
ww在线观视频免费观看w|
成人无码Av片在线观看|
久久er这里只有精品|
日韩AV无码一区二区三区不卡毛片|
亚洲三级中文字幕|
精品国产v无码大片在线看|
国产一级特黄高清在线大片|
国产精品入口在线看麻豆|
国产精品亚洲欧美大片在线看
|
亚洲综合激情六月婷婷在线观看|
精品久久伦理中文字幕|
台湾三级香港三级经典三在线|
色网站在线免费观看|
国产凌凌漆国语|
香蕉成人伊视频在线观看|
国产日韩av在线播放|
亚洲第一永久色|
国产精品一区二区无线|