关键是这个子线程函数没运行
相关代码如下
这个是主线程判断是否readfile线程死掉,
TerminateThread(Comh->m_hThread,0);//结束线程
Sleep(1000);
BOOL ret=::GetExitCodeThread(Comh->m_hThread,&dwExit);//根据句柄获取线程的状态
if(dwExit!=STILL_ACTIVE)//线程已经挂掉则重新创建线程
{ if (Comh->m_hThread != NULL)
CloseHandle(Comh->m_hThread);//释放线程内存 Sleep(5000);

Comh = AfxBeginThread(RecvComDataThread, NULL, THREAD_PRIORITY_NORMAL);//重新创建线程
WriteLog("串口线程重新创建,线程id=%d,当前时间=%d",Comh->m_nThreadID,time(NULL));

}这个是realfile 线程读数据
while(true) //从缓存写入内存
{
if (!g_pSerialComm[k]->ReadByte())//返回false为读到无效数据,如果15次内没读到有效数据则先解包
{

nReadLen = GetDataCounter(&g_pSerialComm[k]->Buff);

// 超过5个包的大小
if (nReadLen >= 5*sizeof(NODE_TRANS_DATA))
{
WriteLog("串口[%s]读满5个包...", g_pSerialComm[k]->GetPort());
break;
}

}

} 小弟我是新来的。希望得到各位大侠的帮助。就是偶尔的情况,在readfile堵死了。