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