如何使用boost :: thread防止系统睡眠

时间:2015-01-05 12:37:02

标签: boost sleep boost-thread standby

我看到SetThreadExecutionState会阻止计算机进入睡眠状态。

使用boost :: thread,我将如何将其应用于我的软件? 使用disable_interruption?

1 个答案:

答案 0 :(得分:1)

这是一个特定于操作系统的功能,与线程完全无关。

这与电源管理有关。

你可以在循环中运行/ a /后台线程,但是:

void background_thread() {

     while (true) {
           boost::this_thread::sleep_for(boost::chrono::seconds(30));
           ::SetThreadExecutionState(...); // whatever you want to do
     }
}

具有讽刺意味的是,您希望使用中断点以便优雅地终止该线程(尽管您可以使用您喜欢的任何同步机制)