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);
(5) BOOL TerminateThread(
HANDLE hThread,//將被終結的線程的句柄;
DWORD dwExitCode //用於指定線程的退出碼。
);
一般情況下,線程運行結束之後,線程函數正常返回,但是應用程序可以調用TerminateThread強行終止某一線程的執行。
(6)BOOL PostThreadMessage(
DWORD idThread,//將接收消息的線程的ID;
UINT Msg,//指定用來發送的消息;
WPARAM wParam,//同消息有關的字參數
LPARAM lParam//同消息有關的長參數;
);