본문 바로가기

프로그래밍83

[펌] _beginthread와 _beginthreadex의 차이 출처: http://naiades.tistory.com/6 윈도우즈에서 스레드를 생성하는 API는 CreateThread(), _beginthread(), _beginthreadex() 이렇게 3개의 함수가 존재합니다. CreateThread()와 _beginthread(), _beginthreadex()의 차이점은 다음과 같습니다. CreateThread()는 스레드를 생성하는 기능만 담당한다. _beginthread(), _beginthreadex()는 내부적으로 CreateThread() 를 사용하여 스레드를 생성하고 C Runtime library에서 내부적으로 필요로 하는 메모리 영역을 초기화 해주는 역할을 하게 됩니다. 초기화 되는 메모리 영역은 각 스레드 마다 따로 관리되게 됩니다. 그렇다면.. 2009. 8. 21.
boolean 변수를 쓰지않고 쓰레드를 종료하는 방법.. Instead of using a boolean to check for the termination event, simply use an event...take a look at the following example: class CFoo { public: CFoo(); ~CFoo(); private: HANDLE m_hEventForStopThread; HANDLE m_hEventForWaitThread; static UINT ThreadFunction(LPVOID* pvParam); }; CFoo::CFoo() { // Create event HANDLE m_hEventForStopThread = CreateEvent(0, TRUE, FALSE, 0); HANDLE m_hEventForWaitThre.. 2009. 8. 21.
[팁] MFC 스레드 생성과 소멸 코드 [팁] MFC 스레드 생성과 소멸 코드 #define AFXBEGINTHREAD(pfnThreadProc,pParam) AfxBeginThread(pfnThreadProc, pParam, THREAD_PRIORITY_NORMAL,0,CREATE_SUSPENDED,NULL) CWinThread* g_pThread = NULL; volatile bool g_bExitThread = true; // 이벤트를 써도 됨 CCriticalSection g_csExitThread; // Create.... g_csExitThread.Lock(); g_bExitThread = false; g_csExitThread.Unlock(); g_pThread = AFXBEGINTHREAD(ThreadFunc,아무값); if(N.. 2009. 8. 6.
리스트뷰에서 WM_LBUTTONUP 이 발생하지 않는다... 해결책은? 리스트뷰에서 WM_LBUTTONUP 발생하는 경우는??? WM_LBUTTONUP 은 리스트뷰 아이템드래깅이 아니면 발생하지 않고 NM_CLICK 이 발생한다. 만일 아이템드래깅을했을경우 NM_CLICK 은 발생하지않고 WM_LBUTTONUP 이 발생하게 된다. ------------------------ // CListCtrl m_listCtrl 의 OnClick[NM_CLICK] 이벤트 처리 함수 void CDialog::OnClickListCtrl(NMHDR *pNMHDR, LRESULT *pResult) { NM_LISTVIEW* pNMListView = (NM_LISTVIEW*)pNMHDR; int pos = pNMListView->iItem; BOOL bCheck = m_listCtrl.GetC.. 2009. 7. 21.