之前發了一篇使用window api來實現管道技術的文章,後來改用c#來實現相同的效果,發現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 );
執行緒函式如下:
為了不阻塞主線程,可以將整個過程放到乙個另乙個執行緒裡就可以了
C 實現Window服務實現定時傳送郵件
網上有很多關於window服務的講解,本篇文章將以例項為主,解讀如何實現window服務。環境 vs 2008 1,新建window服務 注 刪除program.cs,因為在service1.cs中,我們會定義程式的入口,就不再需要該檔案 2,專案會自動生成service1.cs 檔案,該類繼承自s...
C 匿名管道的理解與實現
什麼是匿名管道?匿名管道用於程序之間通訊,且僅限於本地父子程序之間通訊,結構簡單,類似於一根水管,一端進水另一端出水 單工 相對於命名管道,其占用小實現簡單,在特定情況下,比如實現兩圍棋引擎本地對戰可以使用匿名管道。怎樣實現匿名管道雙向通訊?由於匿名管道是單工的,所以為實現父子程序雙向通訊需要建立兩...
用c 實現語音技術
speech.cs using system using mstts mstts命名空間 namespace bedlang public void speak string text speech.cs 4.編譯bedlang.speech csc target library out bedla...