0

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

4

2 回答 2

1

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

我曾经在“过去”这样做,即使在我的 PII 233 Mhz 上运行多个线程,这样做也几乎不会降低 CPU 使用率。

于 2013-03-16T16:44:09.137 回答
1

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

于 2013-03-16T16:45:42.447 回答