我正在使用boost::asio
,我正在尝试控制我的处理程序被调用的顺序。我被指向prioritised_handlers.cpp
示例。当我试图改编它时,我没有得到我期望的行为。当我从处理程序中将处理程序传递给io_service.post
时,处理程序永远不会运行。
我开始尝试找到我不理解的行为的最小例子。因此,请对http://www.boost.org/doc/libs/1_38_0/doc/html/boost_asio/example/invocation/prioritised_handlers.cpp
进行以下修改简单示例:
161 while (io_service.run_one())
162 {
163 // The custom invocation hook adds the handlers to the priority
164 // queue
165 // rather than executing them from within the poll_one() call.
166 while (io_service.poll_one())
167 ;
168 io_service.post(pri_queue.wrap(1, low_priority_handler));
169
170 pri_queue.execute_all();
171
172 }