为什么我的多线程应用程序挂起?

时间:2014-01-28 17:01:46

标签: c++ multithreading mfc

我有创建和启动线程的代码:

CWinThread *m_pThread;
m_pThread = AfxBeginThread(StartThread, m_pObj, THREAD_PRIORITY_NORMAL, CREATE_SUSPENDED, 0);
m_pThread->m_bAutoDelete = FALSE;
m_pThread->ResumeThread();

这是我的功能。它等待完成这个线程,因为我想开始新的线程:

void Some()
{
  m_pObj->bRefresh = true;
  DWORD dw = ::WaitForSingleObject(m_pThread->m_hThread, INFINITE);//hangs and doesn't move anywhere
}

但是从我的线程回来很好。

请帮我找到我做错了什么?

UINT StartThread(LPVOID lpParam)
{
Obj *pObj = (Obj*)lpParam;
while(!pObj->Refresh)
{}
return 0;
}

1 个答案:

答案 0 :(得分:0)

主要问题是我无法从循环返回,这就是我的线程挂起的原因 非常感谢重播