C++11 std::this_thread - 如何取消sleep_until()?

C++11 std::this_thread - How to cancel sleep_until ()?

有什么办法可以"cancel":

std::this_thread::sleep_until(now + std::chrono::milliseconds(200));

让我们想象一下以下场景:

我将我的线程设置为在 200 毫秒内唤醒...但是在 10 毫秒后,我收到一个新请求,要求我的线程必须在 100 毫秒内唤醒...

所以线程应该在以下时间唤醒: 100 毫秒,然后是 200 毫秒(当然是在当前时间之后)。

谢谢:)

我不认为你可以用 sleep_until 做到这一点。查看条件变量 ( http://www.cplusplus.com/reference/condition_variable/condition_variable/ )。应该可以完全满足您的需求。