전산쟁이의 카피질
뒤로
검색
글목록
댓글
트랙백
방명록
CEvent 사용하기
2009/03/31 21:14
CEvent 원하는 때에 이벤트가 발생한 것처럼 신호를 보내준다
CEvent g_Event(FALSE, FALSE); class CTest { public: int StartTest( ); }; // 스레드를 만드는 함수 int CTest:: StartTest( ) { m_thParam.pCaller = this; m_pthCommStatus = ::AfxBeginThread( ReceiveStatusThreadFunc, &m_thParam, THREAD_PRIORITY_NORMAL ); if ( m_pthCommStatus != NULL ) { return TRUE; } else { return FALSE; } } // 스레드로 돌아가는 함수 UINT ThreadFunc( LPVOID lParam ) { RECEIVETHREADPARAM *pParam = ( RECEIVETHREADPARAM * )lParam; while(true) { // 스레드 종료 이벤트 검사 if( ::WaitForSingleObject( g_Event->m_hObject, 0 ) == WAIT_OBJECT_0 ) { break; } // 스레드로 뭔가 열심히 해야 하는 코드가 있어야 할 부분 } AfxEndThread(0); return TRUE; }
이런 코드가 있다 칠때... 어디선가... g_Event.SetEvent(); 라고 호출을 하면 저 ThreadFunc 스레드는 종료되게 된다. 위치는 요기이다.
// 스레드 종료 이벤트 검사 if( ::WaitForSingleObject( g_Event->m_hObject, 0 ) == WAIT_OBJECT_0 ) { break; }
Tags
CEvent
,
Thread
,
스레드
,
쓰레드
이전 페이지
댓글 보기 (0)
트랙백 보기 (0)
다음 페이지
이 페이지는 Textcube 1.10.0 : beta 1 로 구동됩니다
데스크탑 화면