WindowsMobile下如果進行NativeC++多執行緒的開發

橘子紅了吶發表於2017-11-05

發現在csdn很多關於Windows Mobile和Window Embedded CE下開發多執行緒的問題,我把的一般做法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()函式。

 

停止

停止執行緒

// Wait for the Thread to Die
WaitForSingleObject(mThreadHnd, INFINITE);
CloseHandle(mThreadHnd);

停止執行緒之前需要發訊息讓子執行緒自己恰當的退出,然後父執行緒等待子執行緒退出。

 

我之前實現了一個執行緒執行任務類,可以參考 Windows Mobile下的重力感應器(Gravitational Sensor)開發 的 “訂閱GVector資訊”一段。

    本文轉自Jake Lin部落格園部落格,原文連結:http://www.cnblogs.com/procoder/archive/2010/01/11/Windows-Mobile-MultiThreading-Native-CPP.html,如需轉載請自行聯絡原作者


相關文章