淺析Windows Embedded CE下Native C++的開發(fā)
本文將介紹下Windows Embedded CE和Windows Mobile下進行Native C++多線程的開發(fā)的情況,希望能為大家搞好Windows Embedded CE開發(fā)有所幫助。
#T#
發(fā)現(xiàn)在網(wǎng)上很多關(guān)于Windows Mobile和Window Embedded CE下開發(fā)多線程的問題,我把的一般做法blog下來。
定義
在類定義中定義線程句柄和線程ID
- HANDLE mThreadHnd;DWORD mThreadId;
啟動
啟動線程
- mThreadHnd = CreateThread(NULL, 0, &ProcessThread, this, CREATE_SUSPENDED, &mThreadId);
- if (mThreadHnd){
- SetThreadPriority(mThreadHnd,THREAD_PRIORITY_NORMAL);
- ResumeThread(mThreadHnd);}
由于Windows Mobile和Window Embedded CE不支持_beginthreadex() ,所以需要使用CreateThread()函數(shù)。
停止
停止線程
- // Wait for the Thread to DieWaitForSingleObject(mThreadHnd, INFINITE);CloseHandle(mThreadHnd);
停止線程之前需要發(fā)消息讓子線程自己恰當(dāng)?shù)耐顺?,然后父線程等待子線程退出。
我之前實現(xiàn)了一個線程執(zhí)行任務(wù)類,可以參考 Windows Mobile下的重力感應(yīng)器(Gravitational Sensor)開發(fā) 的 “訂閱GVector信息”一段。
原文標(biāo)題:Windows Mobile下如果進行Native C++多線程的開發(fā)
鏈接:http://www.cnblogs.com/procoder/archive/2010/01/11/Windows-Mobile-MultiThreading-Native-CPP.html