async_read在收到请求的字节数时调用回调。这可能意味着要多次调用async_read_some。
在文档中,指定最多可以有一个挂起的async_read_some。在发出下一个async_read_some之前,必须调用回调。
async_read呢?多个async_read可以排队吗?如果是,执行顺序是否得到保证?
根据async_read(...)
的文档
此操作是根据对流的
async_read_some
函数的零个或多个调用来实现的,称为组合操作。程序必须确保流在该操作完成之前不执行其他读取操作(如async_read
、流的async_read_some
函数或任何其他执行读取的组合操作)。
这意味着,在调用完成处理程序(回调)之前,您不能在同一流上启动任何进一步的async_read
操作——这应该只有一次,当提供的缓冲区被填充、完成条件得到满足或出现一些错误时。
您并不完全清楚"排队"多个async_read
操作是什么意思。实现async_read
操作序列的方法是在完成处理程序中启动下一个操作。