最近在使用界面线程时,遇到一个奇怪的现象。从CWinThread派生一个自己定义类CThreadScript,类中响应若干个自定义消息。类定义如下:
利用AfxBeginThread(RUNTIME_CLASS(CThreadScript));开启线程,而后向线程发送自定义消息。
在消息响应函数中定义了一个局部变量wuya,而后调用AfxEndThread()结束线程,该局部变量内存将不会释放。而CThreadScript类成员变量m_wuya内存得到释放。
如果有人知道原因可以给我留言,谢谢。
补充:
经过讨论研究,可能由于我调用AfxEndThread()结束线程导致的,类似于强杀线程,没有内存清理机会。正确的使用方法是,向线程发送WM_QUIT消息,使线程结束。