问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

boost:ioservice run等待多久没有回调事件返回

发布网友 发布时间:2022-04-24 18:21

我来回答

1个回答

热心网友 时间:2023-10-31 16:06

 这里我们将每秒回调一次,来演示如何回调函数参数的含义  #include <iostream>
  #include <asio.hpp>
  #include <boost/bind.hpp>
  #include <boost/date_time/posix_time/posix_time.hpp>
  首先,调整一下timer的持续时间,开始一个异步等待.显示,回调函数需要访问timer来实现周期运行,所以我们再介绍两个新参数
  指向timer的指针
  一个int*来指向计数器
  void print(const asio::error& /*e*/,
  asio::deadline_timer* t, int* count)
  {
  我们打算让这个函数运行6个周期,然而你会发现这里没有显式的方法来终止io_service.不过,回顾上一节,你会发现当 asio::io_service::run()会在所有任务完成时终止.这样我们当计算器的值达到5时(0为第一次运行的值),不再开启一个新的异步等待就可以了.
  if (*count < 5)
  {
  std::cout << *count << " ";
  ++(*count);
  ...
  然后,我们推迟的timer的终止时间.通过在原先的终止时间上增加延时,我们可以确保timer不会在处理回调函数所需时间内的到期.
  (原文:By calculating the new expiry time relative to the old, we can ensure that the timer does not drift away from the whole-second mark e to any delays in processing the handler.)
  t->expires_at(t->expires_at() + boost::posix_time::seconds(1));
  然后我们开始一个新的同步等待.如您所见,我们用把print和他的多个参数用boost::bind函数合成一个的形为void(const asio::error&)回调函数(准确的说是function object).
  在这个例子中, boost::bind的asio::placeholders::error参数是为了给回调函数传入一个error对象.当进行一个异步操作,开始 boost::bind时,你需要使用它来匹配回调函数的参数表.下一节中你会学到回调函数不需要error参数时可以省略它.
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
在液压原理图中各种符号的表示意义是什么? 脚臭怎么办,一脱鞋,那味道我自己都受不了? ...经电加热后表面会形成一层黑色物质,请问是什么东西?用什么化学... 宿舍老是经常出现蚂蚁,放久的书本打开全是蚂蚁,或是布柜里放久的衣服... 为什么寝室地板上会有蚂蚁? 怎么计算产值excel 青春不再伤感经典句子(《青春伤感经典短句子》) 致我们失去的青春简短说说(怀念过去的经典句子) 分享回忆过去致青春的语录集锦(回忆的句子时光感言简短) 女生为什么总想摸我的脸 五湖四海的意思? 如何在windows7中打开readyboosto服务 五洲四海是什么意思? 使用readyboost时要开启哪个服务? Windows 7没有ReadyBoost服务 五湖四海什么意思 vista ReadyBoost服务 无法启用 怎么办啊? boost asio socket 服务端 底层是不是 iocp trutopsboost软件打不开,提示连接服务器失败, 如何在linux下用boost库实现多线程的聊天服务器 显卡Boost 加速是什么意思? boost windows 有什么用? 如何打开win7的ReadyBoost服务? 怎么查一个中文核心期刊的影响因子 核心期刊影响因子在哪里查询啊 蓝牙对战游戏 有没有人知道能用蓝牙手柄玩的游戏有哪些 有没有可以联机,蓝牙联机的手机游戏,像NBA2k14一样的蓝牙游戏 如何用蓝牙传游戏? 请问大家知道什么好玩的蓝牙游戏? 怎样使用Boost Asio建立非凡的客户端和服务端应用 五湖四海是什么意思? 迅盘是什么?用来做什么的? sysmain服务哪里打开 五湖四海的意思??? vista如何打开readyboost服务? 五湖四海是什么意思 c++ boost怎么做几百个并发的线程程序 五渊四海是什么意思 Win7使用Readyboost遇到不能正常开启怎么办 小米手机街拍模式怎么用 手机微信小程序聊天记录电脑微信能看到吗 小米note和小米5和小米4s有街拍模式吗? 小米5S有街拍模式吗? 有没有什么好的卵巢保养手法? 小米miui12怎么没有街拍模式 小米8青春版有街拍模式吗? 卵巢保养有哪些好处?太空按摩球按摩几个穴位养卵巢呢? 小米8街拍模式最多能拍多少时间?可以设置更长时间吗? 小米max3有街拍模式吗