一.同步定时器,如下:
#include <iostream>
#include <boost/asio.hpp>
#include <boost/date_time/posix_time/posix_time.hpp>
int main(int argc,char** argv){
boost::asio::io_service ios;
boost::asio::deadline_timert(ios,boost::posix_time::seconds(2));
std::cout<<t.expires_at()<<std::endl;
t.wait();
std::cout<<"helloworld"<<std::endl;
return 0;
}
二.异步定时器,如下:
#include <iostream>
#include <boost/asio.hpp>
#include <boost/date_time/posix_time/posix_time.hpp>
void print(const boost::system::error_code& e){
std::cout<<"hello asio"<<std::endl;
}
int main(int argc,char** argv){
boost::asio::io_service ios;
boost::asio::deadline_timer t(ios,boost::posix_time::seconds(2));
t.async_wait(print);
std::cout<<"it show before texpired."<<std::endl;
ios.run();
return 0;
}
#include <iostream>
#include <boost/asio.hpp>
#include <boost/bind.hpp>
#include <boost/function.hpp>
#include <boost/date_time/posix_time/posix_time.hpp>
using namespace boost;
using namespace boost::asio;
void print1(){
std::cout<<"hello asio"<<std::endl;
}
void print2(){
std::cout<<"hello boost"<<std::endl;
}
三.用bind实现异步定时器,如下:
#include <iostream>
#include <boost/asio.hpp>
#include <boost/bind.hpp>
#include <boost/function.hpp>
#include<boost/date_time/posix_time/posix_time.hpp>
using namespace boost;
using namespace boost::asio;
class a_timer{
private:
int count;
int count_max;
function<void()> f;
deadline_timer t;
public:
template<typename F>
a_timer(io_service& ios,int x,Ffunc):f(func),count_max(x),count(0)
,t(ios,posix_time::millisec(500))
{
t.async_wait(bind(&a_timer::call_func,this,placeholders::error));
}
void call_func(const system::error_code& e){
if(count >= count_max){
return;
}
++count;
f();
t.expires_at(t.expires_at() +posix_time::millisec(500));
t.async_wait(bind(&a_timer::call_func,this,placeholders::error));
}
};
int main(int argc,char** argv){
io_service ios;
a_timer at1(ios,5,print1);
a_timer at2(ios,5,print2);
ios.run();
return 0;
}
分享到:
相关推荐
1+x云计算AAAAAAAA
使用方法:在java代码DESUtil.java中设置你想要的key字符串变量:String keyString = "bbbbbbbb";,运行代码,查看打印的byte类型的key,复制到c++代码的这个变量:unsigned char deskey[8] = {}; //在这里填写java...
AAABBBBB BBBBBBBB BBBBBBBB BBBBBBBB BCCCCCCC CCCCCCCC CCCCCCCC CCCCCCCD DDDDDDDD DDDDDDDD DDDDDDDD DDDDDEEE EFFFFFFF FFFFFFFF FFFFFFFF FFFFFFFG 符号 长度(byte) 位置 描述 A 3 (0~2) 标签标志。如果...
VALUE "Comments", "bbbbbbbb" //备注 VALUE "ProductVersion", "2, 1, 0, 0" //产品版本 VALUE "ProductName", "HistoryClear 软件" //产品名称 VALUE "PrivateBuild", "ssssssss" //个人用内部版本说明 ...
分享给大家供大家参考,具体如下: ... $arr = array( demo1 => my demo1, demo2 => array( ... demo2_demo2=>bbbbbbbb, demo2_demo3=>array( demo2_demo3_demo1=>ccccccc ) ), demo3 => 22 ); $json_s
自己平时可能也会经常遇到所以总结如下: 1,dom元素的创建 2,dom元素的插入 3,dom元素替换 4,dom元素的删除 首先页面上有这么些简单的dom元素 ”wrap”> ”a”>aaaaaaaa</div> ”b”>bbbbbbbb</div> ”c”>...
1,什么是事件委托:通俗的讲,事件就是onclick,onmouseover,onmouseout,等就是事件,委托呢,就是让别人来做,这个事件本来是加在某些...<li>bbbbbbbb <li>cccccccc [removed] = function(){ var oUl = document
Merkle-lib 一个注重性能的库,用于Merkle根和树计算。 警告事项 此实现很容易遭受伪造攻击,,请参阅这些 crypto.stackexchange问题以获取解释。... 'bbbbbbbb' , 'cccccccc' ] . map ( x => new B
Fortigate 7.4.3 kvm