c++ - boost::asio::basic_waitable_timer `cancel` 行为

标签 c++ asynchronous boost-asio

假设有 asiodeadline_timer 或类似的,它过期并调用回调。在调用期间和回调仍在运行时,将调用 cancel。 问题是 cancel 会阻塞直到回调完成吗?

最佳答案

不,取消不会阻塞,也不会等待任何处理程序完成。

如果访问来自不同的线程,则您有责任同步对计时器实例的访问。

此处记录了有限的线程安全:https://www.boost.org/doc/libs/1_67_0/doc/html/boost_asio/reference/basic_waitable_timer.html#boost_asio.reference.basic_waitable_timer.thread_safety

关于c++ - boost::asio::basic_waitable_timer `cancel` 行为,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51040947/

相关文章:

c++ - 将原始数组初始化为一个值

c++ - 为什么这些 CRTP 模式中只有一个可以编译?

C++ 将数组及其长度传递给函数(使用宏/内联函数?)

sockets - 在 dart 中将 SocketServer 作为 Isolate 运行

.net - 我可以异步运行 Seq.iter 的 Action 函数吗

node.js - Node 子进程 exec async 仅调用一次

c++ - 如何指定要在用 C++ 编写的应用程序中使用的特定 NIC (boost asio)

C++ 提取字符串

c++ - 在与 Asio 和 OpenSSL 握手期间,*某些*网站上出现错误的版本号错误

c++ - 如何处理套接字