找回密码
 用户注册

QQ登录

只需一步,快速开始

查看: 5804|回复: 3

问一下run_event_loop阻塞的处理方法

[复制链接]
发表于 2013-1-23 11:12:31 | 显示全部楼层 |阅读模式
请问一下各位,当Reactor运行到run_event_loop时,往往程序会进入一个死循环然后就没法继续往下执行了,一般这个时候是用什么方法避免掉这个问题啊~~谢谢
发表于 2013-1-23 20:23:51 | 显示全部楼层
另外开个线程不就行了。
 楼主| 发表于 2013-1-31 11:24:59 | 显示全部楼层
winston 发表于 2013-1-23 20:23
另外开个线程不就行了。

追问版主一个问题,一般在MFC里面使用Task开多个线程以后,是要用ACE_Thread_Manager::instance()->wait()等待所有线程执行完毕,那么这句话一般是放在什么地方会比较好呢,如果是cmd窗口下有ACE_Main函数,可以放在函数的最后,即使线程中存在事件循环,也不会影响整个程序的运行,但是在MFC里面是没有显式的main函数的,如果随便放在一个函数定义里面,当线程中存在事件循环时,都会导致整个函数不能完整的运行完~~
发表于 2013-6-3 20:16:17 | 显示全部楼层
MFC的话呢,有类似main函数的CWinApp::Initialize(大概是这名字)。可以考虑在这个函数之后做这件事情~~
不过MFC本身有自己的消息循环和阻塞机制,有时候run_event_lopp除了起到事件循环的作用,还起到阻塞主线程的作用,这里就可以考虑将reactor的loop扔到线程里面去做。
您需要登录后才可以回帖 登录 | 用户注册

本版积分规则

Archiver|手机版|小黑屋|ACE Developer ( 京ICP备06055248号 )

GMT+8, 2024-12-22 16:01 , Processed in 0.019623 second(s), 7 queries , Redis On.

Powered by Discuz! X3.5

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表