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.

 

 

Boost.Asio 개요  Boost.Asio 홈

728x90
반응형