如果我使用close而不是cancel,会出现一些问题。
为什么我应该使用
我担心如果有一些异步操作正在执行,
像
我认为
是吗?
close
函数可以关闭套接字,任何未完成的异步操作都将通过返回boost::asio::error::operation_aborted
错误来停止。为什么我应该使用
cancel
而不是close
呢?我担心如果有一些异步操作正在执行,
cancel
可能无法取消它,对吗?像
asio::ip::tcp::resolve::cancel
一样,我尝试了很多次在调用async_resolve
之后取消resolve_handler
,但resolve_handler
总是没有返回boost::asio::error::operation_aborted
错误。我认为
resolve_handler
正在被执行?是吗?