如何用boost :: chrono睡觉?

时间:2012-03-03 01:16:25

标签: c++ boost-thread chrono

boost::this_thread::sleep()的示例似乎使用了boost::posix_time::milliseconds的对象。我已经尝试了它并且它可以工作,但我使用boost::chrono来检查系统时钟等。在我看来,我应该能够sleep() chrono::duration这样传递:{/ p>

  

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 个答案:

答案 0 :(得分:12)

像这样,使用sleep_forseconds

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

修改

验证后,此功能尚未在boost 1.49.0中提供。我所有的道歉。这只适用于boost的trunk版本。

这意味着如果不转换为boost.datetime格式,就无法调用类似睡眠的函数。