关于创建的线程执行完就崩溃的问题
我的程序有个要求,就是当按下某个按钮之后启动新进程,在新进程中安排一些操作等
的新进程弄好的 但是执行完毕的时候总是自己死在了一个系统函数
死在上面的 void* pRetVal = pData->pData[nSlot];
LeaveCriticalSection(&m_sect); 这块了
我的创建代码如下
的新进程弄好的 但是执行完毕的时候总是自己死在了一个系统函数
inline void* CThreadSlotData::GetThreadValue(int nSlot)
{
EnterCriticalSection(&m_sect);
ASSERT(nSlot != 0 && nSlot < m_nMax);
ASSERT(m_pSlotData != NULL);
ASSERT(m_pSlotData[nSlot].dwFlags & SLOT_USED);
ASSERT(m_tlsIndex != (DWORD)-1);
if( nSlot <= 0 || nSlot >= m_nMax ) // check for retail builds.
{
LeaveCriticalSection(&m_sect);
return NULL;
}
CThreadData* pData = (CThreadData*)TlsGetValue(m_tlsIndex);
if (pData == NULL || nSlot >= pData->nCount)
{
LeaveCriticalSection(&m_sect);
return NULL;
}
void* pRetVal = pData->pData[nSlot];
LeaveCriticalSection(&m_sect);
return pRetVal;
}
死在上面的 void* pRetVal = pData->pData[nSlot];
LeaveCriticalSection(&m_sect); 这块了
我的创建代码如下
void CBuildImageLibDlg::OnBnClickedButtonRecog()
{
// TODO: Add your control notification handler code here
m_pThrd = AfxBeginThread(RecogFunc,this,NULL,0,0,NULL);
if( m_pThrd!= NULL)
{
m_ThreadHandle = m_pThrd->m_hThread;
CloseHandle(m_ThreadHandle);
}
}
...全文
相关推荐
java线程池使用后到底要关闭吗
主要给大家介绍了关于java线程池使用后到底要不要关闭的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
你都理解创建线程池的参数吗?
主要介绍了创建线程池参数,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
多线程解决mfc对话框未响应、卡死问题
多线程解决mfc对话框未响应、卡死问题
Android之线程池ThreadPoolExecutor的简介
今天小编就为大家分享一篇关于Android之线程池ThreadPoolExecutor的简介,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧
C#实现控制线程池最大数并发线程
主要介绍了C#实现控制线程池最大数并发线程的相关资料,需要的朋友可以参考下


进程/线程/DLL
