![]()  | 
![]() ![]() ![]() ![]()  | 
![]()  | 
basic_waitable_timerBoost , Boost.Asio , Reference
  
  
   | 
||||||||||||||||||||||||||||||||||||||||||||||||||
| 
                 Имя  | 
                 Описание  | 
|---|---|
Тип часов.  | 
|
Тип времени часов.  | 
|
Основной тип реализации объекта I/O.  | 
|
Тип сервиса, который будет использоваться для обеспечения операций I/O.  | 
|
Тип времени часов.  | 
|
Тип признаков ожидания.  | 
| 
                 Имя  | 
                 Описание  | 
|---|---|
Начните асинхронное ожидание на таймере.  | 
|
Конструктор. Конструктор устанавливает определенное время истечения срока действия как абсолютное время. Конструктор должен установить определенное время истечения срока действия по отношению к настоящему времени.  | 
|
Отменить любые асинхронные операции, которые ждут на таймере.  | 
|
Отменяет одну асинхронную операцию, которая ждет на таймере.  | 
|
Получить время истечения срока действия таймера как абсолютное время. Установите время истечения срока действия таймера как абсолютное время.  | 
|
Время истечения срока действия таймера по отношению к настоящему времени. Установите время истечения срока действия таймера по отношению к настоящему времени.  | 
|
Получить io_сервис, связанный с объектом.  | 
|
Выполняйте блокирующее ожидание на таймере.  | 
| 
                 Имя  | 
                 Описание  | 
|---|---|
Получить основную реализацию объекта I/O.  | 
|
Получить услугу, связанную с объектом I/O.  | 
| 
                 Имя  | 
                 Описание  | 
|---|---|
(Deprecated: Use get_implementation().) The underlying implementation of the I/O object.  | 
|
(Deprecated: Use get_service(). Сервис, связанный с объектом I/O.  | 
Шаблон класса basic_waitable_timer предоставляет возможность выполнять блокировку или асинхронное ожидание истечения срока действия таймера.
Ожидаемый таймер всегда находится в одном из двух состояний: «выжил» или «не истек». Если функция wait() или async_wait() называется на просроченном таймере, операция ожидания будет завершена немедленно.
В большинстве приложений будет использоваться один из steady_timer, система_timer или хай_разрешение_таймер Типdefs.
Эта подходящая функция таймера предназначена для использования с C++11 стандартной библиотекой <chrono> или с Boost. Библиотека Хроно.
Distinct объекты: Безопасно.
Составлено объекты: Небезопасны.
Выполнение блокировки ожидания (C++11):
// Construct a timer without setting an expiry time. boost::asio::steady_timer timer(io_service); // Set an expiry time relative to now. timer.expires_from_now(std::chrono::seconds(5)); // Wait for the timer to expire. timer.wait();
Выполнение асинхронного ожидания (C++11):
void handler(const boost::system::error_code& error) { if (!error) { // Timer expired. } } ... // Construct a timer with an absolute expiry time. boost::asio::steady_timer timer(io_service, std::chrono::steady_clock::now() + std::chrono::seconds(60)); // Start an asynchronous wait. timer.async_wait(handler);
Изменение времени истечения срока действия таймера во время ожидания асинхронного ожидания приводит к отмене этих операций ожидания. Для обеспечения того, чтобы действие, связанное с таймером, выполнялось только один раз, используйте что-то подобное:
void on_some_event() { if (my_timer.expires_from_now(seconds(5)) > 0) { // We managed to cancel the timer. Start new asynchronous wait. my_timer.async_wait(on_timeout); } else { // Too late, timer has already expired! } } void on_timeout(const boost::system::error_code& e) { if (e != boost::asio::error::operation_aborted) { // Timer was not cancelled, take necessary action. } }
boost::asio::basic_waitable_timer::expires_from_now() функция отменяет любые ожидающие асинхронные ожидания и возвращает количество асинхронных ожидания, которые были отменены. Если он возвращает 0, то вы были слишком поздно, и официант уже был казнен или вскоре будет казнен. Если он возвращает 1, то официант был успешно отменен.boost::asio::error::operation_aborted.Здитель: >boost/asio/basic_waitable_timer.hpp
Заголовок: boost/asio.hpp
Статья basic_waitable_timer раздела Boost.Asio Reference может быть полезна для разработчиков на c++ и boost.
реклама  |