我这样的代码为什么线程创建后不运行呢?
我之前的代码运行是正常的,主要代码流程是:
///////////////////////////////////////////////////////////////////////
主线程中:
//建了一个Event和子线程
m_hRdallEvent = CreateEvent(NULL,FALSE,FALSE,NULL);
m_hThrd = CreateThread( NULL, 0, &CLogViewerDlg::ReadTagsThrd,this,0,NULL);
//主线程做一些操作后,设置EVENT为通知态。。。
SetEvent(m_hRdallEvent);
...
在子线程中:
//先做一些操作,然后阻塞,等待事件被触发
WaitForSingleObject(m_hRdallEvent,INFINITE);
//事件触发后做后续操作
////////////////////////////////////////////////////////////////////////////
以上代码运行起来主线程和子线程运行都很正常,可是后来我要在主线程SetEvent调用之后加一个阻塞,等待子线程结束,于是就在SetEvent之后加了一行: WaitForSingleObject(m_hThrd,INFINITE);
而在这之后,程序运行起来就死掉了,一调试,发现是子线程根本没有运行,所以程序死在新加的这句阻塞语句上了,想来想去想不通,向高手求救!