windows 經常使用thread方法

1.HANDLE CreateThread(
_In_opt_LPSECURITY_ATTRIBUTES lpThreadAttributes,
_In_SIZE_T dwStackSize,
_In_LPTHREAD_START_ROUTINE lpStartAddress,
_In_opt___drv_aliasesMemLPVOID lpParameter,
_In_DWORD dwCreationFlags,
_Out_opt_LPDWORD lpThreadId
);
參數說明
lpThreadAttributes:指向SECURITY_ATTRIBUTES型態的結構的指針。在Windows 98中忽略該參數。在Windows NT中,NULL使用默認安全性,不能夠被子線程繼承,不然須要定義一個結構體將它的bInheritHandle成員初始化爲TRUE
dwStackSize,設置初始棧的大小,以字節爲單位,若是爲0,那麼默認將使用與調用該函數的線程相同的棧空間大小。任何狀況下,Windows根據須要動態延長堆棧的大小。
lpStartAddress,指向線程函數的指針.
lpParameter:向線程函數傳遞的參數,是一個指向結構的指針,不需傳遞參數時,爲NULL。
dwCreationFlags :線程標誌,可取值以下
(1)CREATE_SUSPENDED(0x00000004):建立一個掛起的線程,
(2)0:表示建立後當即激活。數組

 


2.VOID ExitThread(DWORD dwExitCode);安全


正常結束一個線程的執行
參數說明:
dwExitCode:指定調用線程的退出代ide


3.BOOL TerminateThread( HANDLE hThread,DWORD dwExitCode);函數


強制終止一個線程的執行
參數說明:
hThread:被終止的線程的句柄
dwExitCode:線程退出時的退出碼線程


4.DWORD ResumeThread(HANDLE hThread)指針


恢復一個線程
參數說明:
hThread: 線程句柄
5.DWORD SuspendThread(HANDLE hThread);對象


掛起一個線程
參數說明:
hThread:線程句柄繼承


6隊列


GetExiCodeThread()ip


獲得一個已經終止線程的退出碼


7.BOOL SetThreadPriority(
    __in HANDLE hThread,
    __in int nPriority
    );
hThread是線程的句柄。
nPriority是線程的優先級。


8.int GetThreadPriority(
__in HANDLE hThread
)


獲得一個線程的優先級

 


9.BOOL CloseHandle(HANDLE hThread)


關閉一個線程的句柄

 


10.BOOL PostThreadMessage(
DWORDidThread,
UINTMsg,
WPARAMwParam,
LPARAMIParam
);
發送一條消息給指定的線程
參數說明:
idThread:其消息將被寄送的線程的線程標識符。若是線程沒有消息隊列,此函數將失敗。當線程第一次調用一個Win 32 USER或GDI函數時,系統建立線程的消息隊列。要獲得更多的信息,參見備註。
Msg:指定將被寄送的消息的類型。
wParam:指定附加的消息特定信息。
IParam:指定附加的消息特定信息。
注意:PostThreadMessage有時會失敗,報1444錯誤(Invalid thread identifier. ) 其實這不必定是線程不存在的緣由,也有多是線程不存在消息隊列(message queue)形成的。


11.int GetMessage(LPMSG lpMsg,HWND hWnd,UINT wMsgFilterMin,UINT wMsgFilterMax);
lpMsg:指向MSG結構的指針,該結構從線程的消息隊列裏接收消息信息。
hWnd:取得其消息的窗口的句柄。當其值取NULL時,GetMessage爲任何屬於調用線程的窗口檢索消息,線程消息經過PostThreadMessage寄送給調用線程。
wMsgFilterMin:指定被檢索的最小消息值的整數。
wMsgFilterMax:指定被檢索的最大消息值的整數。
返回值:若是函數取得WM_QUIT以外的其餘消息,返回非零值。若是函數取得WM_QUIT消息,返回值是零。若是出現了錯誤,返回值是-1。例如,當hWnd是無效的窗口句柄或lpMsg是無效的指針時。若想得到更多的錯誤信息,請調用GetLastError函數。
12.HANDLE GetCurrentThread()


獲得當前的線程的僞句柄,表示只在調用的線程中使用有效。


13.DWORD GetCurrentThreadId()
獲取當前線程一個惟一的線程標識符


14.DWORD GetThreadId(HANDLE hThread)


獲得指定線程的ID


15.DWORD WaitForSingleObject(


HANDLE hHandle,
DWORD dwMilliseconds
)


等待單個對象


16.DWORD WaitForMultipleObject(DWORD dwCount , CONST HANDLE* phObject, BOOL fWaitAll, DWORD dwMillisecinds);

等待多個對象 參數說明: dwCount : 表示等待對象個數 phObject: 表示指向對象句柄的數組指針 fWaitAll: 是否等待全部的對象(ture) dwMillisecinds: 最長等待時間,INFINITE表示死等。  

相關文章
相關標籤/搜索