一般實時監控功能放在乙個單獨開闢的執行緒比較合適,因為這樣可以大大減輕主線程的負擔。
下面我談談如何建立乙個監控執行緒(以乙個工程說明)。
使用vs 2005 新建乙個對話方塊工程:test 。在 bool
c test
dlg::oninitdialog () 函式裡建立執行緒,具體**如下:
dword dwthreadid = 0; // 定義執行緒id handle hthread = createthread( null, // default security attributes 0, // use default stack size listendb, // thread function this, // argument to thread function 0, // use default creation flags &dwthreadid); // returns the thread identifier // 注意這裡必須關閉執行緒,否則會出現記憶體洩露 if (null!=hthread) closehandle(hthread);
這裡稍微介紹一下 createthread 函式的用法,
createthread 共有6 個引數,
handle createthread(
lpsecurity_attributes lpthreadattributes,
size_t dwstacksize,
lpthread_start_routine lpstartaddress,
lpvoid lpparameter,
dword dwcreationflags,
lpdword lpthreadid );
lpthreadattributes ------ 執行緒的安全屬性,一般設定為null 就可以了
dwstacksize ------- 堆疊初始化大小,設定為0 表示使用預設大小
lpstartaddress ------ 執行緒函式位址
lpparameter ------- 執行緒函式引數
dwcreationflags -------- 執行緒控制標誌, 設定為0 表示建立後立即執行
lpthreadid ------- 執行緒id
返回值為建立後的執行緒控制代碼。
這裡的關鍵引數其實只有兩個: lpstartaddress 和lpparameter 。
下面再看看執行緒函式listendb :
dword winapi listendb(lpvoid lpparam) return 0; }
如何建立乙個簡單的執行緒
在symbian中,用rthread來操作執行緒,乙個rthread物件代表乙個執行緒的控制代碼。常用rthead物件來建立或操作其他執行緒。rthread的基類是rhandlebase類,該類封裝了控制代碼的行為。rthread,rprocess,rmutex和rsession base都繼承自r...
如何建立乙個多執行緒任務
a01 01 函式在排程時是序列,只有在第乙個函式返回時才會進行下乙個執行緒。那麼如何讓兩個函式同時工作呢?thread 執行緒技術用於實現併發任務,可以讓多個函式同時執行。main 函式本身被稱為 主線程 第一乙個類 class mytask public os thread return 0 執...
VC如何建立乙個新的執行緒
使用mfc開發是較普遍的vc 程式設計方法。在vc 6.0下,mfc應用程式的執行緒由cwinthread物件表示。vc 把執行緒分為兩種 使用者介面執行緒和工作者執行緒。使用者介面執行緒能夠提供介面和使用者互動,通常用於處理使用者輸入並相應各種事件和訊息 而工作者執行緒主要用來處理程式的後台任務。...