服务端收到消息后丢给线程,在接收消息有延时

yann2 2014-05-17 09:20:32

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消息呢

注:线程里执行的是连接数据库操作。
...全文
111 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
yann2 2014-05-18
  • 打赏
  • 举报
回复
引用 2 楼 worldy 的回复:
的看你return subClientRegister(sClientObj->Socket, (bUserRegisertReq *)pvBuffer, dwLength);函数是怎么写的
已经解决,谢谢大家 是我没有给客户端及时回包造成的
worldy 2014-05-17
  • 打赏
  • 举报
回复
的看你return subClientRegister(sClientObj->Socket, (bUserRegisertReq *)pvBuffer, dwLength);函数是怎么写的
微型蚂蚁 2014-05-17
  • 打赏
  • 举报
回复
用没有用WaitForSingleObject等待线程结束?

18,356

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 网络编程
c++c语言开发语言 技术论坛(原bbs)
社区管理员
  • 网络编程
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧