Programming/MFC-C++

Thread 관련 함수 및 API, 쓰레드 제어

빠릿베짱이 2012. 12. 30. 21:45
반응형

쓰레드 생성

 HANDLE hThread;
 DWORD dwThreadId;
 hThread = (HANDLE)_beginthreadex(NULL, 0, &gLearningProcess, this, 0, (unsigned *)&dwThreadId);

쓰레드 함수

unsigned __stdcall  gLearningProcess(void* pArg)
{
     CSvCalenderDlg* pDlg = (CSvCalenderDlg*)pArg; 
     return 0;
}

header 파일에 선언

friend unsigned __stdcall gLearningProcess(void* pArg);    

 

Event 관련 API

g_hEvent = CreateEvent(NULL,TRUE,FALSE,TEXT("Waiting Event"));    //이벤트 생성

int nRet = WaitForSingleObject(g_hEvent,500); //시간 또는 INFINITE  무한대 기다리기
 //0이면 시그널이 있음
 if(nRet == WAIT_TIMEOUT)
      return;

SetEvent(g_hEvent);     //기다리고 있을때 신호 주면 다음으로 넘어감

ResetEvent(g_hEvent);    //SetEvent를 콜하면 g_hEvent가 signal 되어 있으므로 다시 nosignal로 만들기 위해서 초기화

CloseHandle(g_hEvent);    //모두 사용했으면 닫아야함.

//hThread 는 쓰레드 핸들 배열 변수, 4는 배열 갯수,
 dw = WaitForMultipleObjects(4,hThread,TRUE,INFINITE);    //여러개의 쓰레드가 완료되기를 기다리는 함수

반응형