기본카테고리

[VC++]쓰레드 사용시 메모리 릭 발생 및 해결방법

DevReff 2014. 1. 25. 21:34




728x90

- 원인 : 윈도우가 종료된 후에도 쓰레드가 계속 작동하려는 데 있음
- 증상 : IMS를 종료할 때 메모리 릭이 발생함
- 해결방안:
    - 방법1: 쓰레드함수를 클래스내로 이동시키고 WM_DESTROY 메세지 발생시 쓰레드를 종료할 수 있게 함
    - 방법2: while()문 계속 진행여부를 체크할 수 있는 변수를 주고 WM_DESTROY 메세지 발생시 그 변수를 false로 설정함
    - 방법3: WM_DESTROY 메세지 발생시 WaitForSingleObject() 를 사용하여 체크하고 쓰레드가 종료되지 않았으면 GetExitCodeThread()와 TerminateThread() 를 사용하여 강제종료시킴