首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >CAsyncSocket中的OnReceive会被另一个OnReceive中断吗?

CAsyncSocket中的OnReceive会被另一个OnReceive中断吗?
EN

Stack Overflow用户
提问于 2015-04-24 00:07:54
回答 2查看 227关注 0票数 0

MSDN表示框架将调用OnRecevie,以通知此套接字缓冲区中有数据,可以通过调用接收成员函数来检索这些数据。如果在OnRecieve运行时可以检索数据,会发生什么情况?

EN

回答 2

Stack Overflow用户

发布于 2015-04-24 00:55:48

下一个OnReceive()不会在中间调用,因为所有的处理都是在同一个线程中完成的。在内部,这是通过CSocketWnd中的消息泵完成的。如果您认为还有另一块数据正在传输中,那么可以在OnReceive()的末尾手动调用AsyncSelect()

票数 0
EN

Stack Overflow用户

发布于 2015-04-24 01:33:21

调用接收之后,如果有更多的数据可用,winsock会向你的消息队列发送一条新消息。这将导致每当您的应用程序恢复发送消息时都会调用OnReceive。这通常是在您从OnReceive返回之后。

但也有一个例外。如果您在从OnReceive返回之前发送消息(例如,通过调用MessageBox),那么当您还在OnReceive中时,就可以调用OnReceive。所以不要发送消息!

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/29828901

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档