我失去了使用strand :: wrap和strand :: post之间的区别吗?看起来像保证序列化,但你怎么能序列化包装,而不是一致的顺序?似乎他们都必须做同样的事情。我什么时候会用另一种?ASIO strand :: wrap是否不必序列化?
这里是一个小更详细的伪代码:
mystrand(ioservice);
mystrand.post(myhandler1);
mystrand.post(myhandler2);
,这保证我的两个处理程序是序列化,甚至在一个线程池的顺序执行。
现在,这与以下有什么不同?
ioservice->post(mystrand.wrap(myhandler1));
ioservice->post(mystrand.wrap(myhandler2));
似乎他们做同样的事情? 为什么使用一个而不是另一个?我看到两者都在使用,并且正试图弄清楚何时一个比另一个更有意义。
对不起,我猜我的问题太简单了。我的意思是这样的: 有什么区别:(strand.wrap(myhandler1)) ioservice->后(strand.wrap(myhandler2)) 和 strand.post ioservice->后(myhandler1 ) strand.post(myhandler2) 其中strand是使用ioservice创建的。 我看到两者都被使用,看起来他们会做同样的事情,即序列化myhandler1和myhandler2? –