rainbowstar 发表于 2013-1-23 11:12:31

问一下run_event_loop阻塞的处理方法

请问一下各位,当Reactor运行到run_event_loop时,往往程序会进入一个死循环然后就没法继续往下执行了,一般这个时候是用什么方法避免掉这个问题啊~~谢谢

winston 发表于 2013-1-23 20:23:51

另外开个线程不就行了。

rainbowstar 发表于 2013-1-31 11:24:59

winston 发表于 2013-1-23 20:23 static/image/common/back.gif
另外开个线程不就行了。

追问版主一个问题,一般在MFC里面使用Task开多个线程以后,是要用ACE_Thread_Manager::instance()->wait()等待所有线程执行完毕,那么这句话一般是放在什么地方会比较好呢,如果是cmd窗口下有ACE_Main函数,可以放在函数的最后,即使线程中存在事件循环,也不会影响整个程序的运行,但是在MFC里面是没有显式的main函数的,如果随便放在一个函数定义里面,当线程中存在事件循环时,都会导致整个函数不能完整的运行完~~

moxuyou 发表于 2013-6-3 20:16:17

MFC的话呢,有类似main函数的CWinApp::Initialize(大概是这名字)。可以考虑在这个函数之后做这件事情~~
不过MFC本身有自己的消息循环和阻塞机制,有时候run_event_lopp除了起到事件循环的作用,还起到阻塞主线程的作用,这里就可以考虑将reactor的loop扔到线程里面去做。
页: [1]
查看完整版本: 问一下run_event_loop阻塞的处理方法