工控程序設計之串口設備的數據采集(ppt 43頁)
工控程序設計之串口設備的數據采集內容提要:
相關知識:
1 多線程技術概述
(1)線程的概念
Windows是一個搶占式多任務操作係統,在係統內核中提供了對多線程的支持,多線程技術可以讓應用程序在一個耗時的操作中能夠及時對用戶操作進行響應,並且從宏觀上達到多個任務“齊頭並進”的目的
進程是應用程序的一個運行例程,是應用程序的一次動態執行過程。線程是被係統獨立調度和分派的基本單位,線程自己不擁有係統資源,但它可與同屬一個進程的其它線程共享進程所擁有的全部資源。每個進程至少需要一個執行線程,由係統自動創建,程序設計者可以根據需要創建其它線程。由於多個線程共享進程中的全局變量和係統資源,所以線程間的切換比較容易,通信也比較方便。
(2).NET Framework對多線程的支持
.NET平台庫提供了Thread類對線程進行處理,該類包含在System.Threading命名空間中,程序中需要包含語句“using System.Threading;”。編程人員可以通過創建一個Thread類的實例來創建一個線程,並通過Thread類提供的方法對線程進行管理
2 委托的概念和使用方法
C#中的委托的作用相當於C/C++中的函數指針,函數指針是一個函數的入口地址。必修使用函數指針的場合是:程序員A編寫了函數f,該函數中需要執行另外一個參數和返回值已經確定,但名字暫時不能確定函數,所以給函數設置一個函數指針類型的形式參數;當程序員B使用函數f時,定義函數g,並把g的入口地址作為實際參數傳遞給函數f,這樣就可以在f中執行函數g了。
線程的啟動是使用函數指針的一個典型例子,在啟動線程之前,先要給操作係統指明線程啟動後執行哪一函數中包含的代碼,這時就要把函數的指針傳遞給創建線程的函數。
回調(完成後通知)是使用函數指針的另外一個典型例子。如程序員A編寫了負責接收網絡數據的函數f1,程序員B編寫了負責處理數據的函數f2,那麼就可以把f2的函數指針作為參數傳遞給函數f1,當f1接收數據完畢後,自動調用f2。所以回調的特點是:站在程序員B的角度看,函數由自己編寫,但是不由自己調用,且不知道什麼時候被調用(因為網絡速度有快有慢),函數編寫者要做的就是把函數指針傳遞出去。
..............................