带有少量CPU负载的c++警报计时器
c++ alert timer with little cpu load
我想用c++和msvc2010在windows上写一个小的警报定时器。计时器需要在几分钟后触发状态消息。我知道如何使用c++检查系统时间,我知道在windows api中有睡眠功能。我如何用很少的cpu负载实现计时器?例如,我不想每隔几毫秒检查一次系统时间,以便在到达触发时间时触发状态消息。当在一个额外的线程中使用sleep(600000)之类的东西时,我是否会创建cpu负载,或者是否有更有效的方法等待几分钟,然后执行一些代码?
您确实可以忙等待并轮询时间。即使是Sleep(1)
也足以使您的程序几乎无法测量。
我过去常常这样做"回到白天",甚至在我的PII 233mhz上运行多个线程这样做,它几乎没有在CPU使用方面产生影响。
您可以创建一个线程,在其中编写一个连续循环,在您的触发器需要运行的时间间隔内休眠,然后打印您的消息。如果需要在2分钟内运行,为什么要选择多个小的睡眠值并检查时间呢?这将浪费CPU时间。
相关文章:
- Linux的Cpp上的计时器
- 提升 ASIO 无法识别计时器对象
- 提升 asio 并发计时器取消问题与链
- 使用单体计时器的pthread_cond_timedwait有时会比预期晚超时
- 窗口中的微秒计时器
- 计时器是否从另一个线程启动?
- 如何在 c++ 中创建计时器
- C++回调计时器实现
- 在计时器或主线程外部的命令上销毁/替换线程
- 如何制作每秒从 30 乘 1 倒计时的计时器?
- 保留计时器集合(对象与指针)的最佳方法
- 在网络套接字计时器滴答后增加asio短读错误
- 是否可以仅使用标准 c++/c++11 实现不带"sleep"的计时器?
- 在没有NtSetTimerResolution的Windows上提高计时器分辨率(高分辨率)
- 计时器坏了或者其他什么的
- 功能计时器阻止主功能继续
- IO服务重新启动后,Boost最后期限计时器持续触发
- boost asio计时器是否会在"取消"时阻塞
- Poco 计时器,具有来自同一类的回调
- 使计时器在C++进程中的特定时间关闭,以便同步两个进程