2010년 2월 24일 수요일

Thread 생성 및 사용

HANDLE Thrd;
Thrd = CreateThread(0,0, (LPTHREAD_START_ROUTINE)ThreadFunc, hWnd, 0, NULL);
//thread를 하나 생성해서 ThreadFunc을 수행시킨다.
CloseHandle(Thrd); //thread를 닫는다.

thread를 하나만 만들었기 때문에 간단하게 create와 close로만 사용했지만,
event를 주고 받는 다거나 thread 여러 개가 동기화를 이루어야 한다면, WaitForSingleObject 등의 함수도 사용할 수 있다.


혹시나 critical section이 생겨서 lock을 걸어주어야 할 경우에는 다음과 같이 사용한다.
LPCRITICAL_SECTION cs; //lock 변수 생성
EnterCriticalSection(&cs); //critical section안에 진입
//To do..

LeaveCriticalSection(&cs); //critical section에서 빠져 나옴. lock 해제


댓글 없음:

댓글 쓰기