본문 바로가기

Programming/MFC

WorkerThread 내에서 윈도우 API 사용하기

WorkerThread 내에서 UpdateData()와 같은 함수를 사용하고자 할때는 오류가 발생한다.

 

이럴때는 CWinThread를 상속받아 UserThread 내에서 사용하던가,

 

메세지를 등록하여 WorkerThread 내에서 처리 할 수 있는 방법이 있다.

 

SendMessage / PostMessage를 활용하여 WorkerThread내에서의 문제를 처리해 보자.

 

 

1. 메시지 정의

#define UM_UPDATE WM_USER

 

 

2. 메시지 맵 등록

BEGIN_MESSAGE_MAP(CPacketViewView, CFormView) 
  ON_MESSAGE( UM_UPDATE, OnUpdateData )
END_MESSAGE_MAP()

 

 

3. 메시지 처리 함수

LRESULT CPacketViewView::OnUpdateData( WPARAM wParam, LPARAM lParam)
{
 UpdateData( true ) ; 
 return 0;
}

 

 

 

UNIT CTest::WorkerThread( LPVOID pParam )

{

    // Thread 처리

         .

         .

         .

    // 메시지 처리

 SendMessage( UM_UPDATE ) ;

         .

         .

}

 

위에서와 같은 방법으로 처리 할 수 있다.

 

  

 

 

'Programming > MFC' 카테고리의 다른 글

CDocument 클래스와 파일 처리  (0) 2006.03.20
데이터 형 및 변수명 관례  (0) 2006.03.20
창의 크기를 고정시키거나 제한하는 방법  (0) 2006.03.17
CFileDialog 파일 저장하기  (1) 2006.03.09
CFileDialog::GetFileExt  (0) 2006.03.09