c++ - 如何创建计时器? (每 X 秒/分钟/小时做某事)

标签 c++

我需要每 10 秒在我的程序中执行一些操作,但我不知道如何在 C++ 控制台应用程序中执行此操作。在 C# 中,我可以创建一个计时器,但我现在在这里苦苦挣扎......

sleep ();不是一个选项,因为据我所知,它会使您的程序在 X 秒内处于非事件状态,我需要我的应用程序处于事件状态并正常工作,并一直在计算。

请帮我解决这个小(或大?)问题,我对 C++ 和学习 ATM 还很陌生 :)

所以我已经设置了 BOOST 库,现在我正在做这样的事情。

boost::timer t;

while (true)
{
    if (t.elapsed() > 1)
    {
        cout << t.elapsed() << endl;
        t.restart();
    }
}

它够好还是应该有更好的方法?哦不,这很糟糕,不停地吃掉我 25% 的 CPU。 :(

最佳答案

Boost 有一个计时器库。

事实上,如果您还没有接触过 Boost,我相信您会发现它非常有用。


做一个基于事件的定时器,你应该看看this answer .

关于c++ - 如何创建计时器? (每 X 秒/分钟/小时做某事),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4855597/

相关文章:

c++ - 在同一个应用程序中使用 Legacy OpenGL 和 Modern OpenGL

c++ - 方括号 [] 运算符重载 c++

c++ - 如何返回 .dat 文件中的项目索引?

c++ - QSqlQuery不起作用

c++ - 使用 C++ fork() 并创建父级的 4 个子级

c++ - 如何将 C++ 中的字母组合增加到 'z' 之外?

c++ - 在 C++ 中将缓冲区导出为 WAV

c++ - 存储点的四叉树移动

c++ - aio_write() 和 O_NONBLOCK write() 的区别

c++ - 结构数组的嵌入式 C++ 静态初始化