天天看點

Windows線程程式設計簡記

//建立線程

CreateThread

DWORD WINAPI ThreadProc(LPVOID lpParameter);

GetExitCodeThread

WaitForMultipleObjects

TerminateThread //強行終止指定線程。注意:必須由程式員在設計該線程時自行保證該線程可以随時非正常終止,否則的話,嘿嘿,什麼記憶體洩露,非法通路記憶體之類的問題就來了。不到萬不得已,盡量不用。

//信号量

CreateSemaphore

ReleaseSemaphore

WaitForSingleObject

//WaitForSingleObject的傳回值

WAIT_TIMEOUT //等了那麼久,居然還是沒有信号,可以選擇再等幾次。

WAIT_OBJECT_0 //OK!有信号了。

WAIT_ABANDONED //不用再等了,這個對象算是廢了,等再多也沒用!

//臨界區

CRITICAL_SECTION g_cs;

InitializeCriticalSection(&g_cs);

DeleteCriticalSection(&g_cs);

EnterCriticalSection(&g_cs);

LeaveCriticalSection(&g_cs);

//原子操作

InterlockedExchangeAdd