关于WaitForSingleObject的问题!请帮帮忙看看,在线等!!
我的程序,在执行>10000s时出现意外的错误,经过我的分析,发现是一个 WaitForSingleObject()出现了问题!请看:
Start=GetTickCount(); //DWORD
Now=GetTickCount(); //DWORD
while(((Now-Start)/1000)<(TotalTime*60)) //总的运行时间
{
double ff=FrequencyArray[i];
if(ff>0)
{
CWinThread* pChildThread=AfxBeginThread (Respond,&ff,SYNCHRONIZE|THREAD_PRIORITY_NORMAL,
0,CREATE_SUSPENDED,0);
pChildThread->ResumeThread();
DWORD result=WaitForSingleObject(pChildThread->m_hThread,INFINITE);
switch(result)
{
case WAIT_OBJECT_0:
str=" WAIT_OBJECT_0 ";
file.Write(str,str.GetLength());
break;
case WAIT_FAILED:
str=" WAIT_FAILED ";
file.Write(str,str.GetLength());
result=GetLastError();
str.Format("result=%ld",result);
file.Write(str,str.GetLength());
break;
default:
str.Format("result=%ld",result);
file.Write(str,str.GetLength());
}
i++;
i=i%LenOfFrequencyArray;
Now=GetTickCount();
}
结果发现file里面在时间>10000s的时候,应该有的关于result的结果纪录没有,但是它的处理函数Respond的结束纪录有!说明Respond正常的return了。也就是应该能够说明是WaitForSingleObject出错了,连返回的result值都没有。我这个程序是做数据采集用的。不知道什么情况下会导致这样的错误。