我看到SetThreadExecutionState会阻止计算机进入睡眠状态。
使用boost :: thread,我将如何将其应用于我的软件? 使用disable_interruption?
答案 0 :(得分:1)
这是一个特定于操作系统的功能,与线程完全无关。
这与电源管理有关。
你可以在循环中运行/ a /后台线程,但是:
void background_thread() {
while (true) {
boost::this_thread::sleep_for(boost::chrono::seconds(30));
::SetThreadExecutionState(...); // whatever you want to do
}
}
具有讽刺意味的是,您希望使用中断点以便优雅地终止该线程(尽管您可以使用您喜欢的任何同步机制)