线程函数执行到中途需等待信号执行另一操作,这时没有等到信号,被(flag)return结束了,到不了delete,求各位给个方案。
unsigned __stdcall CPrintThreadDlg::ThreadProcP(void *lparam)
{
CPrintThreadDlg*pthis = (CPrintThreadDlg*)lparam;
while (pthis->m_bFlagQuit)
{
int *p = new int;
WaitForSingleObject(pthis->m_hEvent, INFINITE);
while (m_bFlagQuit&&pthis->m_Goods <= 1000)
{
//等到信号生产产品
//InterlockedIncrement((LPLONG)pthis->m_Goods);
//WaitForSingleObject(pthis->m_hMutex,INFINITE);
pthis->m_Goods++;
//ReleaseMutex(pthis->m_hMutex);
//将产品加入到队列
EnterCriticalSection(&pthis->m_cs);
//pthis->m_Goods++;
pthis->m_qu.push(pthis->m_Goods);
LeaveCriticalSection(&pthis->m_cs);
//给消费者释放信号
ReleaseSemaphore(pthis->m_hSemaphore, 1, NULL);
}
delete p;
p = NULL;
}
return 0;
}
线程函数在等待事件信号之前申请空间,然后一直等待事件触发,但是我不触发它,现在要关闭终止线程,资源如何释?
- 写回答
- 好问题 0 提建议
- 追加酬金
- 关注问题
- 邀请回答
-
0条回答 默认 最新
悬赏问题
- ¥15 软件工程用例图的建立(相关搜索:软件工程用例图|画图)
- ¥15 如何在arcgis中导出拓扑关系表
- ¥15 处理数据集文本挖掘代码
- ¥15 matlab2017
- ¥15 在vxWorks下TCP/IP编程,总是connect()报错,连接服务器失败: errno = 0x41
- ¥15 AnolisOs7.9如何安装 Qt_5.14.2的运行库
- ¥20 求:怎么实现qt与pcie通信
- ¥50 前后端数据顺序不一致问题,如何解决?(相关搜索:数据结构)
- ¥15 基于蒙特卡罗法的中介效应点估计代码
- ¥15 罗技G293和UE5.3