Skip to content

thread

2007.02.10 03:55

han 조회 수:2307 추천:51

안녕하세요.

저도 이런 문제로 참 많이 고민했었는데요..



다들 안된다구만 하시구... 답변이 있는걸 못봤거든요..



문제는 ..



쓰레드 만들면서 생긴 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 객체가 없어집니다.





이거 알아내느라.. 며칠간 삽질했네요. ^^



그럼 즐프하세용.

Powered by Xpress Engine / Designed by Sketchbook

sketchbook5, 스케치북5

sketchbook5, 스케치북5

나눔글꼴 설치 안내


이 PC에는 나눔글꼴이 설치되어 있지 않습니다.

이 사이트를 나눔글꼴로 보기 위해서는
나눔글꼴을 설치해야 합니다.

설치 취소