thread
2007.02.10 03:55
안녕하세요.
저도 이런 문제로 참 많이 고민했었는데요..
다들 안된다구만 하시구... 답변이 있는걸 못봤거든요..
문제는 ..
쓰레드 만들면서 생긴 CWinThread 객체가 소멸되지 않는것인데요.
보통 이런식으로 하죠?
CWinThread *pThread;
pThread = AfxBeginThread(func, ........ );
요래놓구서 외부에서 강제로
TerminateThread(pThread->m_hThread); 요렇게 하고 말면..
처음에 할당되었던 pThread 를 그냥 붕 뜨죠.. ^^;;
저는 이런식으로 해결 했습니다.
처음에 CWinThread *pThread = NULL; 로 선언 하구요
pThread = AfxBeginThread(func, ........ );
그 뒤에 강제로 종료시켜야 할때는..
if(pThread)
{ // Thread 가 한번이라도 실행되었으면 들어옴.
GetExitCodeThread(*pThread->m_hThread, &exitCode);
if(exitCode == STILL_ACTIVE)
{
TerminateThread(*pThread->m_hThread, 0);
}
delete *pThread;
}
요렇게 해주면 Thread 생성시에 만들어졌던 CWinThread 객체가 없어집니다.
이거 알아내느라.. 며칠간 삽질했네요. ^^
그럼 즐프하세용.
저도 이런 문제로 참 많이 고민했었는데요..
다들 안된다구만 하시구... 답변이 있는걸 못봤거든요..
문제는 ..
쓰레드 만들면서 생긴 CWinThread 객체가 소멸되지 않는것인데요.
보통 이런식으로 하죠?
CWinThread *pThread;
pThread = AfxBeginThread(func, ........ );
요래놓구서 외부에서 강제로
TerminateThread(pThread->m_hThread); 요렇게 하고 말면..
처음에 할당되었던 pThread 를 그냥 붕 뜨죠.. ^^;;
저는 이런식으로 해결 했습니다.
처음에 CWinThread *pThread = NULL; 로 선언 하구요
pThread = AfxBeginThread(func, ........ );
그 뒤에 강제로 종료시켜야 할때는..
if(pThread)
{ // Thread 가 한번이라도 실행되었으면 들어옴.
GetExitCodeThread(*pThread->m_hThread, &exitCode);
if(exitCode == STILL_ACTIVE)
{
TerminateThread(*pThread->m_hThread, 0);
}
delete *pThread;
}
요렇게 해주면 Thread 생성시에 만들어졌던 CWinThread 객체가 없어집니다.
이거 알아내느라.. 며칠간 삽질했네요. ^^
그럼 즐프하세용.
댓글 1
번호 | 제목 | 글쓴이 | 날짜 | 조회 수 |
---|---|---|---|---|
724 | 홈에 카운터를 다시 달았습다. | 한승석 | 2003.02.02 | 2066 |
723 | Re: 저승사자가 된것 같아요. | 한승석 | 2003.02.07 | 2066 |
722 | 새벽 콜 | 한승석 | 2003.02.12 | 2066 |
721 | 아산병원 피부과 홈페이지 디자인하다.ㅋㅋ | 한승석 | 2003.03.24 | 2066 |
720 | 별이 될꺼야. | Whria | 2003.05.13 | 2066 |
719 | 상담 | WHRIA | 2003.06.02 | 2066 |
718 | 발표 그리고 발표 그리고 또 발표 | NEWTYPE | 2003.06.06 | 2066 |
717 | 시카고 | 한승석 | 2003.06.22 | 2066 |
716 | 메이ㅔㄹ 주소 | han | 2003.06.23 | 2066 |
715 | 오늘 하루 끝 | 한승석 | 2004.01.17 | 2066 |
714 | 어제 태어나서 처음으로 의자에서 자다... | 한승석 | 2004.03.14 | 2066 |
713 | [re] 승석아... | Han | 2004.07.02 | 2066 |
712 | 으아.. 예진이 15개.... | Han | 2004.07.08 | 2066 |
711 | Dermatologic Grand Round 발표 | 한승석 | 2004.09.10 | 2066 |
710 | 만원 [1] | WHRIA | 2005.05.20 | 2066 |