Как спать с boost :: chrono? - PullRequest
8 голосов
/ 03 марта 2012

Примеры boost::this_thread::sleep(), кажется, используют объекты boost::posix_time::milliseconds. Я попробовал это, и это работает, но я использую boost::chrono для проверки системных часов и так далее. Мне кажется, я должен быть в состоянии передать sleep() a chrono::duration так:

boost :: this_thread :: sleep (boost :: chrono :: duration (10));

Но компилятор выдает мне следующую ошибку:

... boost_1_49_0 \ boost / thread / win32 / thread_data.hpp (171): ошибка C2039: 'total_milliseconds': не является членом 'boost :: chrono :: duration'

Что меня смущает. Правильно ли я думаю, что должен быть в состоянии сделать это? Нужно ли будет конвертировать в posix_time?

1 Ответ

12 голосов
/ 03 марта 2012

Подобным образом используйте sleep_for и seconds

boost::this_thread::sleep_for( boost::chrono::seconds(10) );

EDIT

После проверки эта функция еще не доступна в бусте 1.49.0.Все мои извинения.Это работает только в транковой версии boost.

Это означает, что невозможно вызвать функцию, похожую на сон, без преобразования в формат boost.datetime.

...