适配一个 完成令牌,以便在指定绝对时间之前未完成时取消操作。
template< typename CompletionToken, typename Clock, typename WaitTraits, typename Executor, typename Duration> cancel_at_timer< decay_t< CompletionToken >, Clock, WaitTraits, Executor > cancel_at( basic_waitable_timer< Clock, WaitTraits, Executor > & timer, const chrono::time_point< Clock, Duration > & expiry, CompletionToken && completion_token);
当异步操作与 cancel_at 一起使用时,定时器 async_wait 操作会与主操作并行执行。如果此并行 async_wait 先完成,则会发出一个取消请求来取消主操作。因此,应用程序必须确保异步操作在一个隐式或显式的 strand 中执行。