我想使用c ++和msvc2010在Windows上编写一个小型警报计时器。计时器需要在几分钟后触发状态消息。我知道如何使用c ++检查系统时间,我知道windows api中有睡眠功能。如何实现具有非常小的CPU负载的计时器?例如,我不希望每隔几毫秒检查一次系统时间,以便在达到触发时间时触发状态消息。在额外的线程中使用sleep(600000)之类的东西时,是否可以创建cpu加载,还是有更有效的方法等待几分钟并在之后执行一些代码?
答案 0 :(得分:1)
你确实可以忙着 - 等待和轮询时间。即使是Sleep(1)
也足以让您的程序几乎无法衡量。
我过去常常“回到白天”,甚至在运行多线程的PII 233 Mhz上这样做,它几乎没有削弱CPU使用率。
答案 1 :(得分:1)
你可以创建一个线程,写一个连续的循环,你只需要在你的触发器需要运行的时间间隔内睡眠,然后打印你的消息。如果你需要在2分钟运行它,为什么选择多个小睡眠值并检查时间?这将浪费CPU时间。