在C/C++中编写计时器的最简单方法是什么?

Sec*_*cko 5 c c++

在C/C++中编写计时器的最简单方法是什么?

嗨,

编写计时器最简单的方法是什么,比如在C/C++中?以前我使用了for循环和do-while循环.我使用for循环作为计数器,使用do-while循环作为"结束时间"的比较.该程序按照我的意愿工作,但消耗了太多的系统资源.

我正在寻找编写计时器的最简单方法.

谢谢!

编辑:

该程序适用于Linux和Windows的一组服务器,因此它是一个多平台环境.我不想使用睡眠或睡眠功能,因为我正试图从头开始编写所有内容.

程序的性质:程序计算系统上的电源时间和电池时间.

EDIT2:

好吧,这似乎引起了一些混乱,所以我将尝试解释到目前为止我做了什么.我已经创建了一个在后台运行的程序,如果它在一段时间内处于空闲状态,它会关闭系统电源,它还会检查特定系统上的电池寿命,如果系统一直在运行,则会进入待机模式电池一段时间.我手动输入时间,所以我需要一个计时器.我想从头开始编写它,因为它是我一直在努力的个人项目的一部分.

sha*_*oth 9

最好的办法是使用一个操作系统原语,在一段给定的时间内暂停程序(如Windows中的Sleep()).程序运行的环境很可能会有一些机制来执行此操作或类似操作.这是避免轮询和消耗CPU时间的唯一方法.

  • 对.你说你想从头开始写一切.希望这仅用于学习目的.但是你已经达到了"终点".除了`time()`民意调查和循环之外,操作系统将为您提供`sleep()`方法,而"刮擦"更多方法的唯一方法就是开始钻研自己的操作系统...... (5认同)

sma*_*uck 5

如果您只是希望程序等待一段时间,可以使用:

  • 睡眠(在Windows中)
  • usleep(在Unix中)
  • boost :: this_thread :: sleep(无处不在)

如果你希望处理或显示直到经过的时间,你使用while()循环的方法很好,但你应该添加一个小睡眠(例如,20ms,但最终取决于你需要的精度) while循环,不要占用CPU.