win32 API 執行緒程式設計
阿新 • • 發佈:2019-02-09
DWORD WaitForMultipleObject(
DWORD dwCount ,
CONST HANDLE* phObject,
BOOL fWaitAll,
DWORD dwMillisecinds);
(1) HANDLE CreateThread( LPSECURITY_ATTRIBUTES lpThreadAttributes,//指向一個 SECURITY_ATTRIBUTES 結構的指標,該結構決定了執行緒的安全屬性,一般置為 NULL; DWORD dwStackSize, //指定了執行緒的堆疊深度,一般都設定為0; LPTHREAD_START_ROUTINE lpStartAddress,//表示新執行緒開始執行時程式碼所在函式的地址,即執行緒的起始地址。 //一般情況為(LPTHREAD_START_ROUTINE)ThreadFunc,ThreadFunc 是執行緒函式名; LPVOID lpParameter,//指定了執行緒執行時傳送給執行緒的32位引數,即執行緒函式的引數; DWORD dwCreationFlags,//控制執行緒建立的附加標誌,可以取兩種值。如果該引數為0,執行緒在被建立後就會立即開始執行; //如果該引數為CREATE_SUSPENDED,則系統產生執行緒後,該執行緒處於掛起狀態,並不馬上執行,直至函式ResumeThread被呼叫; LPDWORD lpThreadId //該引數返回所建立執行緒的ID; );
(2) DWORD SuspendThread(HANDLE hThread);
該函式用於掛起指定的執行緒,如果函式執行成功,則執行緒的執行被終止。
(3) DWORD ResumeThread(HANDLE hThread);
(4) VOID ExitThread(DWORD dwExitCode);
一般情況下,執行緒執行結束之後,執行緒函式正常返回,但是應用程式可以呼叫TerminateThread強行終止某一執行緒的執行。(5) BOOL TerminateThread( HANDLE hThread,//將被終結的執行緒的控制代碼; DWORD dwExitCode //用於指定執行緒的退出碼。 );
(6)BOOL PostThreadMessage( DWORD idThread,//將接收訊息的執行緒的ID; UINT Msg,//指定用來發送的訊息; WPARAM wParam,//同訊息有關的字引數 LPARAM lParam//同訊息有關的長引數; );