关于关闭对话框会卡死的问题
我在OnInitDialog()中加上StartTestProcess();
开启一个线程,然后点一下按钮关闭线程,关闭对话框时,在release模式下会卡死,而在debug模式下不会,不知道是什么原因啊,谢谢各位
StartTestProcess();
bool MemberManagerDlg::StartTestProcess()
{
m_CloseThreadRoll = false;
//初始化为发送指令
m_RollThread = CreateThread(NULL, 0, ThreadTestRoll, this, 0, NULL);
CloseHandle(m_RollThread);
return true;
}
void MemberManagerDlg::OnBnClickedButton1()
{
// TODO: 在此添加控件通知处理程序代码
//关闭本窗体的轮询线程
this->m_CloseThreadRoll = true;
do
{
} while (m_bThreadAlive);
TRACE("RollThread ended\n");
}
m_threadStopEvent = CreateEvent(NULL, TRUE, eventState, NULL);
if (NULL == m_threadStopEvent)
{
//CLIENT_ERROR("%s 创建事件失败,错误码:%d", __FUNCTION__, GetLastError());
return FALSE;
}
m_RollThread = CreateThread(NULL, 0, ThreadTestRoll, this, 0, NULL);
if (NULL == m_RollThread )
{
//CLIENT_ERROR("%s 创建线程失败,错误码:%d", __FUNCTION__, GetLastError());
return FALSE;
}
void MemberManagerDlg::OnBnClickedButton1()
{
if (NULL != m_threadStopEvent)
{
SetEvent(m_threadStopEvent);
WaitForSingleObject(m_RollThread , INFINITE);
CloseHandle(m_threadStopEvent);
CloseHandle(m_RollThread );
m_RollThread = NULL;
m_threadStopEvent = NULL;
}
m_CloseThreadRoll = true;
while (m_bThreadAlive)
{
Sleep(10); //为线程留出时间
} ;