WSAWaitForMultipleEvents 等待时间设置

unhappyless 2010-11-21 07:35:33
WSAWaitForMultipleEvents 很多实例代码都是设超时时间,让后判断是不是 WSA_WAIT_TIMEOUT ,是的话再进入上层的无限循环,这么节省cpu消耗么?
为什么不 WSAWaitForMultipleEvents 等待时间设置成无限等待?
...全文
116 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
unhappyless 2010-11-22
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 sd6814466 的回复:]
嘿嘿,我也觉得一般情况下无限等待更符合程序执行需要
不过结合实际需要,设置一个等待时间,能够很大程度上避免一些设计时没预料到的情况,万一有种你没预料到的情况出现了而又没等待到呢,那不是就一直等下去了?而一般情况下设置一个等待时间也不会对程序执行效率有多大影响
总之就是保险一点了
[/Quote]

有没预料的情况不就bug了,。。。。。
sd6814466 2010-11-22
  • 打赏
  • 举报
回复
嘿嘿,我也觉得一般情况下无限等待更符合程序执行需要
不过结合实际需要,设置一个等待时间,能够很大程度上避免一些设计时没预料到的情况,万一有种你没预料到的情况出现了而又没等待到呢,那不是就一直等下去了?而一般情况下设置一个等待时间也不会对程序执行效率有多大影响
总之就是保险一点了
unhappyless 2010-11-21
  • 打赏
  • 举报
回复
当时这函数用法大都是


while(TRUE)
{
int index = WSAWaitForMultipleEvents (…);
if(WSA_WAIT_TIMEOUT == index)
{
Sleep(100);
cotinue;
}
WSAEnumNetworkEvents(…);

//判断网络事件
}


这个线程的其他代码,在 WSAWaitForMultipleEvents 超时情况下也没执行必要


所以不解,为什么看到的这种模型实例都是这么写
Eleven 2010-11-21
  • 打赏
  • 举报
回复
要看你的应用程序的需要
sanguomi 2010-11-21
  • 打赏
  • 举报
回复
主要WSAWaitForMultipleEvents 是个同步函数,
设置成无限等待的时候,有可能WSAWaitForMultipleEvents 所在线程一直处于等待状态 其他代码没办法再获得执行时间
设置一个等待时间,主要就是避免WSAWaitForMultipleEvents 所在线程一直处于等待状态或者等待时间太长

64,282

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

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