Boost C++ Libraries/Boost.Asio
Boost.Asio 개요 - 타이머
까마귀75
2020. 12. 11. 15:18
728x90
반응형
타이머 (Timers)
긴 시간 실행되는 I/O 작업에는 완료 기한이 주어지는 경우가 많다. 이러한 기한은 절대 시간으로 표현될 수 있지만, 현재 시간에서 비례하여 계산되는 경우가 많다.
간단한 예로, 타이머에서 상대 시간을 사용하여 동기식 대기 작업을 수행하려면 다음과 같이 작성한다:
io_context i; ... deadline_timer t(i); t.expires_from_now(boost::posix_time::seconds(5)); t.wait();
더 일반적으로 프로그램은 타이머에서 비동기식 대기 작업을 수행한다:
void handler(boost::system::error_code ec) { ... } ... io_context i; ... deadline_timer t(i); t.expires_from_now(boost::posix_time::milliseconds(400)); t.async_wait(handler); ... i.run();
타이머와 관련된 기한은 상대 시간으로도 얻을 수 있고:
boost::posix_time::time_duration time_until_expiry = t.expires_from_now();
또는 타이머의 조합을 허용하는 절대 시간으로도 얻을 수 있다:
deadline_timer t2(i); t2.expires_at(t.expires_at() + boost::posix_time::seconds(30));
더 보기
basic_deadline_timer, deadline_timer, timer tutorials.
728x90
반응형