프로그래밍/C, C++

클래스안에 쓰레드 함수 삽입하기 (CreateThread, _beginthreadex)

Dev-Drake 2019. 6. 18. 16:59
반응형

1. 클래스 헤더안에 static으로 선언

 

class TestDlg {

  public :

       static DWORD WINAPI ThreadHandler(LPVOID lpParam);           // CreateThread
       static unsigned int __stdcall ThreadHandler(void *pParam);       // _beginthreadex

}

 

 

2. 클래서 내용안에 정의

 

// CreateThread

DWORD WINAPI TestDlg::ThreadHandler(LPVOID lpParam)
{

    TestDlg *Dlg = (TestDlg *)lpParam;

 

     while(TRUE) {
        ...
     }


   return 0;

}

 

//  _beginthreadex()

unsigned int __stdcall TestDlg::ThreadHandler(void *pParam) 
{

    TestDlg *Dlg = (TestDlg *)pParam;

    while(TRUE) {
       ...
    }
  return 0;
}

 

 

3. 프로그램에서 실행


m_hThread = CreateThread(NULL, 0, ThreadHandler, this, 0, NULL);

m_hThread = (HANDLE) _beginthreadex(NULL,0,ThreadHandler,(void*)this , 0, NULL);

 

반응형