Простой периодический таймер ASIO C ++ Boost?

AR ДА DUBL I

24
задан g19fanatic 24 November 2010 в 17:04
поделиться

1 ответ

Поскольку у меня были некоторые проблемы с предшествующими ответами, вот мой пример:

#include <boost/asio.hpp>
#include <boost/bind.hpp>
#include <boost/date_time/posix_time/posix_time.hpp>
#include <iostream>

void print(const boost::system::error_code&, boost::asio::deadline_timer* t,int* count)
{
    if (*count < 5)
    {
        std::cout << *count << std::endl;
        ++(*count);
        t->expires_from_now(boost::posix_time::seconds(1));
        t->async_wait(boost::bind(print, boost::asio::placeholders::error, t, count));
    }
}

int main()
{ 
    boost::asio::io_service io;
    int count = 0;
    boost::asio::deadline_timer t(io, boost::posix_time::seconds(1));

    t.async_wait(boost::bind(print, boost::asio::placeholders::error, &t, &count));

    io.run();
    std::cout << "Final count is " << count << std::endl;

    return 0;

}

это сделало то, что это предположило, чтобы сделать: подсчет к пять. Пусть это помогает кому-то.

0
ответ дан 28 November 2019 в 23:30
поделиться
Другие вопросы по тегам:

Похожие вопросы: