C++ boost::asio::io_服务-为什么要使用post功能?
我希望有人告诉我使用post功能的优点(和缺点)。为什么和什么时候我更喜欢使用post,为什么/什么时候我不想使用它?当您希望回调基本上现在就发生,但不是在当前上下文中发生时,post非常有用。原因可能包括:C++ boost::asio::io_服务-为什么要使用post功能?,c++,boost,C++,Boost,我希望有人告诉我使用post功能的优点(和缺点)。为什么和什么时候我更喜欢使用post,为什么/什么时候我不想使用它?当您希望回调基本上现在就发生,但不是在当前上下文中发生时,post非常有用。原因可能包括: 当前上下文持有锁,您希望在释放锁后调用该函数。这将允许函数自己获取这些锁,而不会导致死锁 调用堆栈可能非常深 在其他方面,当前线程可能不适合该函数,而post是在另一个线程中调度该函数的方便方法 我猜你是在比较post()和dispatch()。一般来说,post()更安全,因为disp
- 当前上下文持有锁,您希望在释放锁后调用该函数。这将允许函数自己获取这些锁,而不会导致死锁
- 调用堆栈可能非常深
- 在其他方面,当前线程可能不适合该函数,而post是在另一个线程中调度该函数的方便方法
post()
和dispatch()
。一般来说,post()
更安全,因为dispatch()
可能会立即调用处理程序,并且在事件驱动编程中存在以意外方式影响排队事件的风险。另外,保持调用堆栈较小,并具有更可预测的行为(dispatch()
可以立即运行,也可以稍后运行)也是有好处的
我刚刚发现
post()
仅在当前io\u服务完成后才可用于删除对象。这可能会引起您的兴趣”“谢谢您的提示!我不知道:-)@ArunMu:我以前注意到过这个链接,我希望得到一个更详细的答案。@eve你应该在正文中说明你的问题与前一个问题不同的原因,而不是评论。