gpt4 book ai didi

c++ - 需要在c++中以周期性时间间隔调用函数

转载 作者:可可西里 更新时间:2023-11-01 14:55:59 26 4
gpt4 key购买 nike

我正在用 C++ 编写一个程序,我需要定期调用一个函数,比如说每 10 毫秒左右。我从来没有在 C++ 中做过任何与时间或时钟相关的事情,这是一个快速简单的问题还是没有巧妙解决方案的问题之一?

谢谢!

最佳答案

要完成这个问题,@user534498 的代码可以很容易地调整为具有周期性滴答间隔。只需要在定时器线程循环开始时确定下一个开始时间点,以及函数执行后的sleep_until那个时间点。

#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)
{
auto x = std::chrono::steady_clock::now() + std::chrono::milliseconds(interval);
func();
std::this_thread::sleep_until(x);
}
}).detach();
}

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

int main()
{
timer_start(do_something, 1000);
while (true)
;
}

关于c++ - 需要在c++中以周期性时间间隔调用函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21057676/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com