将一个函数提交到指定的执行上下文中运行,并在完成后提交完成处理程序。
template< typename Function, typename ExecutionContext, typename NullaryToken = default_completion_token_t<typename ExecutionContext::executor_type>> auto dispatch( Function && function, ExecutionContext & ctx, NullaryToken && token = default_completion_token_t< typename ExecutionContext::executor_type >(), constraint_t< is_void< result_of_t< decay_t< Function >()> >::value > = 0, constraint_t< is_convertible< ExecutionContext &, execution_context & >::value > = 0);
将在目标执行器上执行的空参数函数。
执行上下文,从中获取目标执行器。
将用于生成完成处理程序的 完成令牌。完成处理程序的函数签名必须是
void handler();
dispatch(forward<Function>(function), ctx.get_executor(), forward<NullaryToken>(token)).
如果函数对象抛出异常,该异常允许传播到目标执行器。此情况下的行为取决于执行器。例如,io_context 将允许异常传播到运行 io_context 的调用者,而 thread_pool 将调用 std::terminate。
void()