代码之家  ›  专栏  ›  技术社区  ›  Superlokkus

std::boost::asio::post/dispatch使用哪个io\u上下文?

  •  1
  • Superlokkus  · 技术社区  · 6 年前

    在使用boost::asio1.66时,我阅读了 boost::asio::io_context::post 不推荐用于 boost::asio::post ,相同 boost::asio::io_context::dispatch io_context 当然,处理程序需要在 executor

    boost::asio::io\u context::post如何知道 io\ U上下文 遗嘱执行人 使用?

    文件 template< typename CompletionToken> DEDUCED post(CompletionToken && token); 声明

    通过执行get\u associated\u executor(handler)获取处理程序的关联executor对象ex。

    但是 get_associated_executor 我也不清楚。我猜是因为 模板参数推导 它可以在当前执行的处理程序中以某种方式获取它,但是我要确保,而且,如果我调用 post 在boost::asio处理程序之外。

    1 回复  |  直到 6 年前
        1
  •  2
  •   sehe    6 年前

    associated_executor trait :

    • get()

      如果T有嵌套类型executor\u type,则返回T.get\u executor()。否则返回ex。

    • executor_type

    如果处理程序类型具有嵌套 类型,则假定调用 token.get()

    如果在未指定执行者/执行上下文的情况下传递一个可调用的vanilla to post,则会得到一个默认构造的执行上下文实例: boost::asio::system_executor .

    联合执行人 get_executor()


    或者任何令牌,以防您的调用模型不同,比如yield上下文