달력

42021  이전 다음

  •  
  •  
  •  
  •  
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  •  
쓰레드를 돌렸다.

CWinThread *m_thread;
전역으로 선언하고
m_thread = AfxBeginThread(ManageThread, this, THREAD_PRIORITY_NORMAL); 
OnThreadStart 버튼 클릭 이벤트에 정의해주고
ManageThread에서 카메라를 통해 입력을 받는데..
입력은 오~ 잘 되네.....

근데 쓰레드를 멈추려고 하니
Unhandled exception at 0x75129617 in OpenCVFaceDetect.exe: Microsoft C++ exception: cv::Exception at memory location 0x053ef580..
이건 머지..
메모리 문제인거 같은데
멈춤 버튼에서 클릭 이벤트가 발생하면

OnThreadStop();
 쓰레드를 종료하고

WaitForSingleObject(m_thread->m_hThread, 1000);
 쓰레드가 완전히 종료 되길 기다린다..

왜 WaitForSingleObject에서 문제가 발생하지....
OnThreadStart()에서 WaitForSingleObject를 체크해 보면 잘되는데

여기에 사람들이 많이 오는건아니지만
혹시라도 하는 기대에
이글을 보게 된 초고수 형님..
OnBnClickedBtnThread2(void){
if(m_thread) {  
  OnThreadStop(); // 스레드 종료 후 종료
  WaitForSingleObject(m_thread->m_hThread, 1000);  
 }  
}
WaitForSingleObject에서 에러가 발생하는 이유가 먼지..
답을 좀 가르쳐 주시면 우리학교 식사라도..ㅠㅠ

=== 결국 답은 제가 찾았습니다...
쓰레드가 문제가 아니라 카메라에서 인식받을때
IplImage* image에서 메모리 공간이 해지되는 과정에서 발생하였습니다.. ㅠㅠ
Posted by sukay

댓글을 달아 주세요