多線程CreateThread函數的用法及注意事項

hThread = CreateThread(&security_attributes, dwStackSize, ThreadProc,pParam, dwFlags, &idThread) ;函數

HANDLE CreateThread(
  LPSECURITY_ATTRIBUTES lpThreadAttributes,      // pointer to security attributes
  DWORD dwStackSize,                  // initial thread stack size
  LPTHREAD_START_ROUTINE lpStartAddress,       // pointer to thread function
  LPVOID lpParameter,                   // argument for new thread
  DWORD dwCreationFlags,                // creation flags
  LPDWORD lpThreadId                  // pointer to receive thread ID
);線程

第一個參數是指向SECURITY_ATTRIBUTES型態的結構的指針。在Windows 98中忽略該參數。在Windows NT中,它被設爲NULL。
第二個參數是用於新線程的初始堆棧大小,默認值爲0。在任何狀況下,Windows根據須要動態延長堆棧的大小。
第三個參數是指向線程函數的指標。函數名稱沒有限制,可是必須如下列形式聲明:
DWORD WINAPI ThreadProc (PVOID pParam) ;
第四個參數爲傳遞給ThreadProc的參數。這樣主線程和從屬線程就能夠共享數據。
第五個參數一般爲0,但當創建的線程不立刻執行時爲旗標CREATE_SUSPENDED。線程將暫停直到呼叫ResumeThread來恢復線程的執行爲止。
第六個參數是一個指標,指向接受執行緒ID值的變量。指針

hThread 爲HANDLE類型;對象

並且線程函數必須爲static型,由於:it

類的靜態函數不屬於該類的任何一個對象,而是屬於類自己,因此不受對象局部變量的影響,在運行時能夠直接調用類的靜態函數,從而啓動線程!io

相關文章
相關標籤/搜索