"if (!KeyImgList.IsEmpty())" 判断链表是否为空 凡是涉及到链表的操作,全部进入临界区,不要放在临界区外面
//你的图像处理线程中的临界区代码如下: EnterCriticalSection(&pDlg->KeynewImageMutex); keyimgprocess.Image = KeyImgList.GetHead(); KeyImgList.RemoveHead(); ResetEvent(pDlg->KeynewImageEvent); LeaveCriticalSection(&pDlg->KeynewImageMutex); keyimgprocess.Image = KeyImgList.GetHead(); 取出链表的第一个节点。 请问,你在去取这个头节点的时候,判断它是否为空了吗??? keyimgprocess.Image = KeyImgList.GetHead(); keyimgprocess.Image取出来以后,判断它是否是一个有效的指针了吗?? 我估计问题就出在这里。。。。
SendMessage
大概其看了眼代码,应该是两个线程的锁使用问题,在判断KeyImgList的Size()和Empty()之前就要加锁
15,471
社区成员
49,182
社区内容
加载中
试试用AI创作助手写篇文章吧