问一下run_event_loop阻塞的处理方法
请问一下各位,当Reactor运行到run_event_loop时,往往程序会进入一个死循环然后就没法继续往下执行了,一般这个时候是用什么方法避免掉这个问题啊~~谢谢 另外开个线程不就行了。 winston 发表于 2013-1-23 20:23 static/image/common/back.gif另外开个线程不就行了。
追问版主一个问题,一般在MFC里面使用Task开多个线程以后,是要用ACE_Thread_Manager::instance()->wait()等待所有线程执行完毕,那么这句话一般是放在什么地方会比较好呢,如果是cmd窗口下有ACE_Main函数,可以放在函数的最后,即使线程中存在事件循环,也不会影响整个程序的运行,但是在MFC里面是没有显式的main函数的,如果随便放在一个函数定义里面,当线程中存在事件循环时,都会导致整个函数不能完整的运行完~~ MFC的话呢,有类似main函数的CWinApp::Initialize(大概是这名字)。可以考虑在这个函数之后做这件事情~~
不过MFC本身有自己的消息循环和阻塞机制,有时候run_event_lopp除了起到事件循环的作用,还起到阻塞主线程的作用,这里就可以考虑将reactor的loop扔到线程里面去做。
页:
[1]