自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

C#管道技術學習經(jīng)驗

開發(fā) 后端
這里介紹C#管道技術一般采用Window API來實現(xiàn),最近我試著用C#管道技術,發(fā)現(xiàn)C#本身方便的進程線程機制使工作變得簡單至極。

C#管道技術一般采用Window API來實現(xiàn),最近我試著用C#管道技術,發(fā)現(xiàn)C#本身方便的進程線程機制使工作變得簡單至極,隨手記錄一下,推薦給大家。

首先,我們可以通過設置Process類,獲取輸出接口,代碼如下:

  1. Process proc = new Process();  
  2. proc .StartInfo.FileName = strScript;  
  3. proc .StartInfo.WorkingDirectory = strDirectory;  
  4. proc .StartInfo.CreateNoWindow = true;  
  5. proc .StartInfo.UseShellExecute = false;  
  6. proc .StartInfo.RedirectStandardOutput = true;  
  7. proc .Start();  

然后設置線程連續(xù)讀取輸出的字符串:

  1. eventOutput = new AutoResetEvent(false);  
  2. AutoResetEvent[] events = new AutoResetEvent[1];  
  3. events[0] = m_eventOutput;  
  4.  
  5. m_threadOutput = new Thread( new ThreadStart( DisplayOutput ) );  
  6. m_threadOutput.Start();  
  7. WaitHandle.WaitAll( events );  

線程函數(shù)如下:

  1. private void DisplayOutput()  
  2. {  
  3.  while ( m_procScript != null && !m_procScript.HasExited )  
  4.  {  
  5.   string strLine = null;  
  6.   while ( ( strLine = m_procScript.StandardOutput.ReadLine() ) != null)  
  7.   {  
  8.    m_txtOutput.AppendText( strLine + "\r\n" );  
  9.    m_txtOutputm_txtOutput.SelectionStart = m_txtOutput.Text.Length;  
  10.    m_txtOutput.ScrollToCaret();  
  11.   }  
  12.   Thread.Sleep( 100 );  
  13.  }  
  14.  m_eventOutput.Set();  

這里要注意的是,使用以下語句使TextBox顯示的總是***添加的,而AppendText而不使用+=,是因為+=會造成整個TextBox的回顯使得整個顯示區(qū)域閃爍

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

為了不阻塞主線程,可以將整個過程放到一個另一個線程里就可以了,以上介紹C#管道技術

【編輯推薦】

  1. C#參數(shù)類型學習筆記
  2. 處理C#消息的方法
  3. C#重載LoadPostData方法
  4. 概述C#復合控件構建
  5. C# JavaScript函數(shù)使用
責任編輯:佚名 來源: 博客園
相關推薦

2009-09-01 13:00:05

C#實現(xiàn)Windows

2009-08-13 18:13:27

C#學習經(jīng)驗

2009-08-19 10:25:18

C#托管資源

2009-08-27 14:44:11

C# interfac

2009-08-20 15:33:03

C#跳躍語句

2009-08-26 17:24:49

C# Mutex對象

2009-08-31 15:48:02

C# Singleto

2009-08-25 16:14:06

C#使用ADOX

2009-08-24 17:06:37

C#字符串

2009-08-28 16:43:57

C#多線程學習

2009-08-27 09:27:49

C#擴展方法

2009-08-28 10:31:47

C#字符ASCII碼

2009-08-31 16:51:11

C# Main()方法

2009-08-11 14:20:41

C# .NET學習經(jīng)驗

2009-09-04 14:30:28

C#讀取BLOB數(shù)據(jù)

2009-08-27 13:45:45

C#別名指示符

2009-08-12 15:55:12

C#接口定義

2009-08-24 16:02:10

C# Windows應

2009-08-24 17:34:14

C#創(chuàng)建XML Web

2009-09-01 13:10:39

C#讀取Word
點贊
收藏

51CTO技術棧公眾號