io_service work 的作用

简介: 当有任务的时候,run函数会一直阻塞;但当没有任务了,run函数会返回,所有异步操作终止。     客户端程序中,如果我想连接断开后重连,由于连接断开了,run会返回,当再次重连的时候,由于run返回了,即使连接成功了,也不会调用aysnc_connect绑定的回调函数。

当有任务的时候,run函数会一直阻塞;但当没有任务了,run函数会返回,所有异步操作终止。

    客户端程序中,如果我想连接断开后重连,由于连接断开了,run会返回,当再次重连的时候,由于run返回了,即使连接成功了,也不会调用aysnc_connect绑定的回调函数。

 解决方法:

1,在再次重连的时候,要重新调用run函数,在调用的前一定要调用io_service::reset。以便io_service::run重用。

 

     boost::asio::io_service io_service_;

   io_service_.reset();

   io_service_.run();

 

2,用boost::asio::io_service::work。

     boost::asio::io_service io_service_;

     boost::asio::io_service::work work(io_service_); 

     io_service_.run();

 

  这样即使没有任务,run也不会返回了。

相关文章
在Activtiy和在Service中创建一个Thread的区别?
在Activtiy和在Service中创建一个Thread的区别?
96 0
|
6月前
|
crash —— 如何获取IO port和IO memory使用情况
crash —— 如何获取IO port和IO memory使用情况
|
9月前
|
【.NET Core】深入理解IO之File类
【.NET Core】深入理解IO之File类
148 6
|
10月前
|
2024-03-08 15:50:20.348 INFO 79028 --- [nio-9603-exec-9] c.t.takeOut.controller.ShopController :
2024-03-08 15:50:20.348 INFO 79028 --- [nio-9603-exec-9] c.t.takeOut.controller.ShopController :
50 0
2024-03-08 15:50:20.348 INFO 79028 --- [nio-9603-exec-9] c.t.takeOut.controller.ShopController :
Service和Thread有什么关系
其实我们最大的疑惑莫过于,认为Thread也可以在后台执行,显然这是错误的,你觉得在一个Activity里new一个Thread,在run方法里执行一些定时耗时操作,应用退出进程不死的情况下,run方法里还会执行吗?显然是不会的
Service和Thread有什么关系
boost::io_service解读
boost::io_service解读 asio是boost提供的一个c++异步编程模型库,其核心类io_service,在多线程编程里面提供了任务队列和任务分发功能,在socket、io编程里主要作为一个事件驱动器(完成端口、select、poll、epoll等)。
1711 0
boost asio中io_service类的几种使用
io_service类 你应该已经发现大部分使用Boost.Asio编写的代码都会使用几个io_service的实例。io_service是这个库里面最重要的类;它负责和操作系统打交道,等待所有异步操作的结束,然后为每一个异步操作调用其完成处理程序。
2375 0
【.Net实用方法总结】 整理并总结System.IO中Directory类及其方法介绍
本文主要介绍System.IO命名空间的Directory类,介绍其常用的方法和示例说明。
【.Net实用方法总结】 整理并总结System.IO中Directory类及其方法介绍
kubernetes-client/java:使用注意-ResouceQuota不能获取到Status信息
kubernetes-client/java:使用注意-ResouceQuota不能获取到Status信息
154 0
kubernetes-client/java:使用注意-ResouceQuota不能获取到Status信息
Service和线程的区别
Service和线程都没有UI界面,都是运行于后台的服务程序,google为什么要为Android系统创建Service这个组件呢? 今天我就把自己的理解分享给大家
211 0
AI助理

你好,我是AI助理

可以解答问题、推荐解决方案等