【发布时间】:2021-09-06 18:01:55
【问题描述】:
我想将 std::this_thread::sleep_for 和 std::this_thread::sleep_until 与 std::stop_token 一起使用,其中如果在 std::stop_token 上请求停止(例如调用 jthread 破坏),则函数返回。 我怎样才能做到这一点?
std::jthread thread {[](std::stop_token stoken){
while(!stoken.stop_requested()) {
std::cout << "Still working..\n";
std::this_thread::sleep_for(5s); // use together with stoken
}
}};
【问题讨论】:
-
std::condition_variable/wait_until可能会有所帮助。 -
你的代码sn-p有点类似于
std::condition_varialbe::wait的实现
标签: c++ multithreading c++20