Карта сайта Kansoftware
НОВОСТИУСЛУГИРЕШЕНИЯКОНТАКТЫ
Разработка программного обеспечения

high_resolution_timer

Boost , Boost.Asio , Reference

Boost C++ Libraries

...one of the most highly regarded and expertly designed C++ library projects in the world. Herb Sutter and Andrei Alexandrescu, C++ Coding Standards

PrevUpHomeNext

Введите таймер на основе часов высокого разрешения.

typedef basic_waitable_timer< chrono::high_resolution_clock > high_resolution_timer;
Types

Имя

Описание

lock_type

Тип часов.

длительность

Тип часов.

реализация_тип

Тип реализации объекта ввода/вывода.

service_type

Тип сервиса, который будет использоваться для обеспечения операций ввода-вывода.

time_point

Тип часов.

traits_type

Тип ожидания.

Member Functions

Имя

Описание

async_wait

Начните асинхронное ожидание на таймере.

basic_waitable_timer

Конструктор.

Конструктор устанавливает определенное время истечения как абсолютное время.

Конструктор устанавливает конкретный срок годности по отношению к настоящему моменту.

отменить

Отменить любые асинхронные операции, ожидающие на таймере.

cancel_one

Отменяет одну асинхронную операцию, ожидающую на таймере.

expires_at

Получить время истечения таймера как абсолютное время.

Установите время истечения таймера как абсолютное время.

expires_from_now

Получите время истечения таймера относительно сейчас.

Установите время истечения таймера относительно настоящего времени.

get_io_service

Получите сервис io_, связанный с объектом.

ождите

Выполните блокирующее ожидание на таймере.

Protected Member Functions

Имя

Описание

get_implementation

Получить базовую реализацию объекта ввода/вывода.

get_service

Получить услугу, связанную с объектом ввода/вывода.

Protected Data Members

Имя

Описание

реализация

(Использовать get_implementation()) Основная реализация объекта ввода/вывода.

сервис

(Использовать get_service()) Услуга, связанная с объектом ввода/вывода.

Шаблон класса basic_waitable_timer обеспечивает возможность выполнения блокирующего или асинхронного ожидания истечения таймера.

Ожидаемый таймер всегда находится в одном из двух состояний: «истечен» или «не истек». Если функция wait() или async_wait() вызывается на просроченном таймере, операция ожидания завершится немедленно.

Большинство приложений будет использовать один из steady_timer, system_timer или high_resolution_timer.

Remarks

Эта функция выжидательного таймера предназначена для использования со стандартной библиотекой C++11 <chrono> или с функцией Boost. Библиотека Хроно.

Thread Safety

Distinct объекты: Безопасный.

Общие объекты:Небезопасные.

Examples

Выполнение ожидания блокировки (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);
Changing an active waitable timer's expiry time

Изменение времени истечения таймера при ожидании асинхронного ожидания приводит к отмене этих операций ожидания. Чтобы действие, связанное с таймером, выполнялось только один раз, используйте что-то вроде этого:

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::::basic_waitable_timer::expires_from_now() отменяет любые ожидающие асинхронные ожидания и возвращает количество асинхронных ожиданий, которые были отменены. Если он возвращается 0, то вы опоздали, и обработчик ожидания уже выполнен или скоро будет выполнен. Если он возвращается 1 то обработчик ожидания был успешно отменен.
  • Если обработчик ожидания отменён, то переданный ему бустер::system::error_code содержит значение boost::asio::error:: Operation_aborted.

Этот типдеф использует C++11 <chrono> стандартный библиотечный объект, если таковой имеется. В противном случае он может использовать бустер. Библиотека Хроно. Явно использовать Boost. Chrono, используйте шаблон basic_waitable_timer напрямую:

typedef basic_waitable_timer<boost::chrono::high_resolution_clock> timer;
Requirements

Руководитель: boost/asio/high_resolution_timer.hpp<5

Заголовок удобства: Никто


PrevUpHomeNext

Статья high_resolution_timer раздела Boost.Asio Reference может быть полезна для разработчиков на c++ и boost.




Материалы статей собраны из открытых источников, владелец сайта не претендует на авторство. Там где авторство установить не удалось, материал подаётся без имени автора. В случае если Вы считаете, что Ваши права нарушены, пожалуйста, свяжитесь с владельцем сайта.



:: Главная :: Reference ::


реклама


©KANSoftWare (разработка программного обеспечения, создание программ, создание интерактивных сайтов), 2007
Top.Mail.Ru

Время компиляции файла: 2024-08-30 11:47:00
2025-05-19 21:14:44/0.0077340602874756/0