在MFC中经常会遇到多个线程之间内存共享的问题,这些共享内存在分配时无甚难处,但在什么地方释放掉内存比较好呢?
下面是按下一个按钮后启动线程的代码:
OnButton()
{
sharedMem = allocate()
AfxBeginThread(Thread1,...)
AfxBeginThread(Thread2,...)
}
首先想到的是启动子线程后,就在OnButton消息响应函数等待,可在Thread1和Thread2里面设置一个标志位,当这两个线程退出后,更改相应的标志位,在OnButton里面等待两个标志位都改变后,释放内存即可,具体的应该如下所示:
OnButton()
{
sharedMem = allocate()
AfxBeginThread(Thread1,...)
AfxBeginThread(Thread2,...)
while(!(bFlagThread1Exit && bFlagThread2Exit))
{
Sleep(2);
}
releas