C++ boost:如何在给定时间之前休眠当前线程?

C++ boost:如何在给定时间之前休眠当前线程?,c++,boost,C++,Boost,不确定我是否遗漏了什么,但如何将boost::posix_time::ptime对象传递给boost::this_thread::sleep_until()?更具体地说:如何从boost::posix_time::ptime转换为boost::chrono::time_point void do_magic(const boost::posix_time::ptime&wakeup_time) { boost::此线程::睡眠直到(唤醒时间);//不工作 多施魔法吧; } 我使用的是boost

不确定我是否遗漏了什么,但如何将
boost::posix_time::ptime
对象传递给
boost::this_thread::sleep_until()
?更具体地说:如何从
boost::posix_time::ptime
转换为
boost::chrono::time_point

void do_magic(const boost::posix_time::ptime&wakeup_time)
{
boost::此线程::睡眠直到(唤醒时间);//不工作
多施魔法吧;
}

我使用的是boost版本
1.62
,如果这与此相关的话。

同时,这个问题已经用
截止时间计时器解决了。有一个解决方案:


您不使用
std
代替boost有什么具体原因吗?如果你在C++版本中是约束的,你应该添加正确的版本标签。@核桃所有代码都是使用<代码> Booo::PosixyTime< /Cord>。我不想改变整个代码库。不过,转换到
std
可能是一种选择。如果
std::this_thread::sleep_until
也可以,那么我想可能是(几乎?)重复。它还可以根据增压变量进行调节,但可能有一种更简单的机制。
// Construct a timer without setting an expiry time.
boost::asio::deadline_timer timer(my_context);

// Set an expiry time relative to now.
timer.expires_from_now(boost::posix_time::seconds(5));

// Wait for the timer to expire.
timer.wait();