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

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...

    MySQL 8.0 OCP 1Z0-908 题库

    在这个问题中,正确的答案是 A)Replication will fail because the master does not have the required transaction with bbbbbbbb-bbbb-bbbb-bbbb-bbbbbbbbbbbb GTIDs in its binary logs。这是因为主服务器缺少了...

    pb颜色计算器.rar

    2. 将这三个32位二进制数按顺序连接起来,即RRRRRRRR GGGGGGGG BBBBBBBB,形成一个32位整数。 3. 这个整数就是Long型的颜色表示,可以直接存储在内存中。 相反,从Long型转换回RGB的过程则是: 1. 将Long型颜色值...

    ResHacker(软件版权修改器)

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

    sql操作语句

    - `INSERT INTO employee (id, username, birthday, entry_date, job, salary, resume) VALUES (2, '张三', '1980-09-09', '1980-09-09', 'bbb', 1000, 'bbbbbbbb');`:再次插入一条新记录。 #### 查询数据 - `...

    DataInOracle-Storage.ppt

    早期的ROWID只有6位用于表示文件号,但在Oracle8以后,ROWID扩展为更复杂的形式,如FFFF.BBBBBBBB.RRRR,分别代表表空间号、块号和行内偏移量。 综上所述,Oracle的存储管理是一个涉及物理结构、逻辑结构、区间管理...

    基于FPGA的异步串行总线设计.pdf

    传输速率设定为40MHz,起始位为0.5bit,题头为***,命令字为BBBBBBBB,停止位为1bit。这种传输格式和协议的设定大大提高了异步串行通信的效率和可靠性。 总结来说,基于FPGA的异步串行总线设计涉及到了硬件架构设计...

    动态检测之插桩下的ROP检测.pdf

    2. 直接远跳转的形式:“call AAAABBBBBBBB”,其中“AAAA”代表16位的段选择子,“BBBBBBBB”代表32位的偏移; 3. 通过内存地址调用的形式,其opcode为“FF15[xxxxxxxx]”; 4. 远调用的形式,其opcode为“FF1D...

    计算机sscanf函数的用法.pdf

    char input[] = "10 0x1b aaaaaaaa bbbbbbbb"; int i, j; char s[5]; sscanf(input, "%d %x %5[a-z] %*s %f", &i, &j, s, s); printf("%d %d %s\n", i, j, s); return 0; } ``` 在这个例子中,`sscanf()`从`...

    HOLUX M1200-E 蓝牙GPS轨迹记录器的历史轨迹数据读取

    string[] cleanedData = hexData.Split(new string[] {"BBBBBBBBAAAAAAAAAAAAAA0702010000BBBBBBBB", "FFFFFFFF2ABFBBBBBBBB"}, StringSplitOptions.RemoveEmptyEntries); foreach (var data in cleanedData) { if...

    面试题赞同

    BBBBBBBB\nAAAAAA**。 ### 8. 接口与继承 题目询问关于Java接口和继承的正确论述。 - **接口中只能定义方法**:不完全正确,从Java 8开始,接口还可以包含默认方法和静态方法。 - **一个类可以实现多个接口**:...

    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

    python装饰器初探(推荐)

    最终,当我们调用`f1(1, 2)`时,首先会打印出“AAAAAAAAA”,然后是“1”,接着是`f1`函数的结果`a1+a2=3`,之后是“2”,最后是“BBBBBBBB”。 通过这样的方式,我们可以看到多个装饰器是如何组合在一起工作的,...

Global site tag (gtag.js) - Google Analytics