【发布时间】:2015-01-05 12:37:02
【问题描述】:
我看到 SetThreadExecutionState 会阻止计算机进入睡眠状态。
使用 boost::thread,我将如何将它应用到我的软件中? 使用 disable_interruption?
【问题讨论】:
标签: boost sleep boost-thread standby
我看到 SetThreadExecutionState 会阻止计算机进入睡眠状态。
使用 boost::thread,我将如何将它应用到我的软件中? 使用 disable_interruption?
【问题讨论】:
标签: boost sleep boost-thread standby
这是一个操作系统特定的功能,与线程完全无关。
与电源管理有关。
不过,您可以运行 /a/ 后台线程来循环执行此操作:
void background_thread() {
while (true) {
boost::this_thread::sleep_for(boost::chrono::seconds(30));
::SetThreadExecutionState(...); // whatever you want to do
}
}
具有讽刺意味的是,您会想要使用中断点来优雅地终止该线程(尽管您可以使用您喜欢的任何同步机制)
【讨论】: