`
byytj
  • 浏览: 48741 次
  • 来自: ...
文章分类
社区版块
存档分类
最新评论

bbbbbbbb

阅读更多

一.同步定时器,如下:

#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云计算BBBBBBBB

    1+x云计算AAAAAAAA

    des_aes.zip

    使用方法:在java代码DESUtil.java中设置你想要的key字符串变量:String keyString = "bbbbbbbb";,运行代码,查看打印的byte类型的key,复制到c++代码的这个变量:unsigned char deskey[8] = {}; //在这里填写java...

    MP3格式解析

    AAABBBBB BBBBBBBB BBBBBBBB BBBBBBBB BCCCCCCC CCCCCCCC CCCCCCCC CCCCCCCD DDDDDDDD DDDDDDDD DDDDDDDD DDDDDEEE EFFFFFFF FFFFFFFF FFFFFFFF FFFFFFFG 符号 长度(byte) 位置 描述 A 3 (0~2) 标签标志。如果...

    ResHacker(软件版权修改器)

    VALUE "Comments", "bbbbbbbb" //备注 VALUE "ProductVersion", "2, 1, 0, 0" //产品版本 VALUE "ProductName", "HistoryClear 软件" //产品名称 VALUE "PrivateBuild", "ssssssss" //个人用内部版本说明 ...

    php array 转json及java 转换 json数据格式操作示例

    分享给大家供大家参考,具体如下: ... $arr = array( demo1 =&gt; my demo1, demo2 =&gt; array( ... demo2_demo2=&gt;bbbbbbbb, demo2_demo3=&gt;array( demo2_demo3_demo1=&gt;ccccccc ) ), demo3 =&gt; 22 ); $json_s

    javascript dom 基本操作小结

    自己平时可能也会经常遇到所以总结如下: 1,dom元素的创建 2,dom元素的插入 3,dom元素替换 4,dom元素的删除 首先页面上有这么些简单的dom元素 ”wrap”&gt; ”a”&gt;aaaaaaaa&lt;/div&gt; ”b”&gt;bbbbbbbb&lt;/div&gt; ”c”&gt;...

    JavaScript中的事件委托及好处

    1,什么是事件委托:通俗的讲,事件就是onclick,onmouseover,onmouseout,等就是事件,委托呢,就是让别人来做,这个事件本来是加在某些...&lt;li&gt;bbbbbbbb &lt;li&gt;cccccccc [removed] = function(){ var oUl = document

    merkle-lib:一个注重性能的库,用于计算merkle根和树

    Merkle-lib 一个注重性能的库,用于Merkle根和树计算。 警告事项 此实现很容易遭受伪造攻击,,请参阅这些 crypto.stackexchange问​​题以获取解释。... 'bbbbbbbb' , 'cccccccc' ] . map ( x =&gt; new B

    Fortigate 7.4.3 kvm

    Fortigate 7.4.3 kvm

Global site tag (gtag.js) - Google Analytics