case bMainMessage::MSG_WHILE_REQ:
{
return subClientWhile(sClientObj->Socket, (tagWhileReq *)pvBuffer, dwLength);
}
case bMainMessage::MSG_USER_REG_REQ:
{
return subClientRegister(sClientObj->Socket, (bUserRegisertReq *)pvBuffer, dwLength);
}
接收到MSG_USER_REG_REQ消息以后,里面直接AfxBeginThread(ThreadAccountOpt, (LPVOID)pUserAccountOpt, 0, 0, NULL);丢给了ThreadAccountOpt线程去处理
而MSG_WHILE_REQ消息我模拟设定为客户端3秒发送1次,测试发现,在未接收到MSG_USER_REG_REQ时,每3秒都有数据正常,但是接收到MSG_USER_REG_REQ消息后,必须要等MSG_USER_REG_REQ消息里建立的线程ThreadAccountOpt结束以后 MSG_WHILE_REQ才能继续接收到消息(这里我直接打印日志看到的 所以不会有误)
线程不是非阻塞的么,建立完线程就返回了,怎么线程不结束就接收不到MSG_WHILE_REQ消息呢
注:线程里执行的是连接数据库操作。