【问题标题】:How to prevent system sleep with boost::thread如何使用 boost::thread 防止系统休眠
【发布时间】:2015-01-05 12:37:02
【问题描述】:

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

使用 boost::thread,我将如何将它应用到我的软件中? 使用 disable_interruption?

【问题讨论】:

    标签: boost sleep boost-thread standby


    【解决方案1】:

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

    与电源管理有关。

    不过,您可以运行 /a/ 后台线程来循环执行此操作:

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2013-05-24
      • 1970-01-01
      • 1970-01-01
      • 2023-03-29
      • 1970-01-01
      • 2013-03-25
      相关资源
      最近更新 更多