[boost.Asio tutorial] Using a timer asynchronously
2019. 8. 13. 13:16ㆍPL/C++
이전 튜토리얼을 수정해서 비동기 callback 함수 기능을 하는 프로그램을 작성하려고 한다. 콜백 함수란 비동기 operation을 완료한 후 수행된다. 비동기 wait 함수는 deadline_timer::async_wait() 함수를 사용한다. 인자로는 콜백 함수의 주소값을 넘겨준다.
그리고 가장 중요한 것이 반드시 io_service::run() 함수를 실행시켜 콜백 함수 동작을 보장받게 한다. 만일 호출되지 않는다면 비동기 wait가 완료된 이후 호출되지 않는다. io_service::run() 함수는 비동기 wait가 완료되기 전까지 지속된다
#include <iostream>
#include <boost/asio.hpp>
#include <boost/date_time/posix_time/posix_time.hpp>
using namespace std;
void print(const boost::system::error_code &) {
cout << "hello world\n";
}
int main(void) {
boost::asio::io_context io;
boost::asio::deadline_timer t(io, boost::posix_time::seconds(5));
t.async_wait(&print);
io.run();
return 0;
}
[출처] https://www.boost.org/doc/libs/1_66_0/doc/html/boost_asio/tutorial/tuttimer2.html
'PL > C++' 카테고리의 다른 글
[boost.Asio tutorial] Using a member function as a handler (0) | 2019.08.14 |
---|---|
[boost.Asio tutorial] Binding arguments to a handler (0) | 2019.08.14 |
[boost.Asio tutorial] Using a timer synchronously (0) | 2019.08.13 |
C++ template (0) | 2019.08.13 |
strncpy 길이 인자로 strlen을 넣어줄 때 (0) | 2019.08.13 |