http://topic.csdn.net/u/20081107/09/69dbccb7-5da3-4b50-9792-8cd2df37f2b5.html
最后用线程同步的方法解决
//初始化同步事件
hTimer=::CreateEvent(NULL,FALSE,FALSE,NULL);
//线程中的相关代码
CRecordreaderView *m_pView = (CRecordreaderView *)lParam;
/////////////////////
发送查询命令相关代码
////////////////////
while(::WaitForSingleObject(hTimer,2000)==WAIT_TIMEOUT && m_pView-> m_iReSendcnt <10)
{
////////////////////////////////
发送查询命令相关代码(重发)
////////////////////////////////
m_pView-> m_iReSendcnt++;
}
m_pView-> m_iReSendcnt=0;
//接收到下位机应答数据后
::SetEvent(hTimer);//置进程同步变量
非常感谢各位大侠的帮助