需要在c ++中以周期性的时间间隔调用函数 [英] need to call a function at periodic time intervals in c++

查看:673
本文介绍了需要在c ++中以周期性的时间间隔调用函数的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我在c ++中编写一个程序,我需要以周期性的时间间隔调用一个函数,例如每隔10ms。我从来没有做过与c ++中的时间或时钟相关的任何事情,这是一个快速而简单的问题,还是没有整洁解决方案的问题之一?

I am writing a program in c++ where I need to call a function at periodic time intervals, say every 10ms or so. I've never done anything related to time or clocks in c++, is this a quick and easy problem or one of those where there is no neat solution?

谢谢! / p>

Thanks!

推荐答案

一个简单的计时器可以实现如下:

A simple timer can be implemented as follows,

#include <iostream>
#include <chrono>
#include <thread>
#include <functional>

void timer_start(std::function<void(void)> func, unsigned int interval)
{
    std::thread([func, interval]() {
        while (true)
        {
            func();
            std::this_thread::sleep_for(std::chrono::milliseconds(interval));
        }
    }).detach();
}


void do_something()
{
    std::cout << "I am doing something" << std::endl;
}

int main() {
    timer_start(do_something, 1000);

    while(true);
}

这个简单的解决方案没有提供停止计时器的方法。计时器将继续运行,直到程序退出。

This simple solution does not offer a way to stop the timer. The timer will keep running until the program exited.

这篇关于需要在c ++中以周期性的时间间隔调用函数的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆