带有少量CPU负载的c++警报计时器

c++ alert timer with little cpu load

本文关键字:c++ 计时器 负载 CPU      更新时间:2023-10-16

我想用c++和msvc2010在windows上写一个小的警报定时器。计时器需要在几分钟后触发状态消息。我知道如何使用c++检查系统时间,我知道在windows api中有睡眠功能。我如何用很少的cpu负载实现计时器?例如,我不想每隔几毫秒检查一次系统时间,以便在到达触发时间时触发状态消息。当在一个额外的线程中使用sleep(600000)之类的东西时,我是否会创建cpu负载,或者是否有更有效的方法等待几分钟,然后执行一些代码?

您确实可以忙等待并轮询时间。即使是Sleep(1)也足以使您的程序几乎无法测量。

我过去常常这样做"回到白天",甚至在我的PII 233mhz上运行多个线程这样做,它几乎没有在CPU使用方面产生影响。

您可以创建一个线程,在其中编写一个连续循环,在您的触发器需要运行的时间间隔内休眠,然后打印您的消息。如果需要在2分钟内运行,为什么要选择多个小的睡眠值并检查时间呢?这将浪费CPU时间。