if (::GetExitCodeThread (AllExitTread->m_hThread, &dwExitCode)&&dwExitCode != STILL_ACTIVE)
{
这里确定线程退出 终止整个程序
} 但是发现线程实际上还没退出 线程中的资源还没被释放 会出现内存泄露 谁知道是什么原因么?
{
这里确定线程退出 终止整个程序
} 但是发现线程实际上还没退出 线程中的资源还没被释放 会出现内存泄露 谁知道是什么原因么?
// thread over
// do your ths
谁知道是什么问题么
建议你在创建完线程以后,马上BOOL CloseHandle(HANDLE hObject);,这样就可能会马上释放!
没有动态申请的内存 new malloc有谁知道是什么问题么给线程发送wm_xxx
线程中代码是 peekmessage(...)
处理wm_xxx消息
do sth...
return 0;然后GetExitCodeThread 检测 发现已经得到线程退出的代码 但是do sth...这步还没执行完毕
没有动态申请的内存 new malloc 有谁知道是什么问题么 给线程发送wm_xxx
线程中代码是 peekmessage(...)
处理wm_xxx消息
do sth...
return 0; 然后GetExitCodeThread 检测 发现已经得到线程退出 !=still_alive 但是do sth...这步还没执行完毕
出现这种判断的可能原因有两个:
1。你检测“do sth”是不是做了的方法有问题
2。你以为一定是通过return返回的,实际上线程不是通过这种方式退出的这上面两个可能必俱其一,不可能跳过中间代码去执行return 0
使用全局变量让主线程和辅线程进行通讯最简便。如果一定要释放,手动调用GlobalFree释放掉。