各位高手,请教下在循环中等待事件响应的问题,谢谢?
木奇 2013-09-07 04:46:14 各位高手,请教下想要实现给下位机发送命令,在规定时间内等待接收命令,请问怎样实现比较好,谢谢?
下面用Application->ProcessMessages()响应会不会有问题,有没有别的比较好的方法,谢谢!
//发送命令
void __fastcall TForm_Main::Button_SendClick(TObject *Sender)
{
……
发送命令
//等待接收命令
DWORD Time_RecvStart=GetTickCount();
Recv_Confirm==RECV_CMD_FAIL;
Send_OK=false;
do
{
Application->ProcessMessages();
//判断接收确认信号
if(Recv_Confirm==RECV_CMD_OK)
{
Send_OK=true;
break;
}
}while((GetTickCount()-Time_RecvStart)<RECV_DELAY);
//后续处理
……
}
//接收命令
void __fastcall TForm_Main::ServerSocket_SCMClientRead(TObject *Sender,
TCustomWinSocket *Socket)
{
//接收命令处理
……
if(是接收确认命令)
{
Recv_Confirm==RECV_CMD_OK
}
……
}