【发布时间】:2016-01-03 16:58:21
【问题描述】:
#include <iostream>
#include "current_time.h"
#include <time.h>
#include <future>
#include <chrono>
#include <Windows.h>
using namespace std;
current_time mytimer;
void timer()
{
while(true)
{
mytimer.operator++(); //incerements seconds
std::this_thread::sleep_for(std::chrono::seconds(1));
}
}
int main()
{
void(*foo)(void);
foo = &timer;
auto future = async(foo);
while (1)
{
Sleep(50);
system("cls");
mytimer.disp_time();
}
}
我的后台计时器不准确。等了一段时间后,我注意到它慢慢地越来越晚了。我知道这是因为 mytimer.operation++() 需要一些时间来运行。我正在寻找修复方法,但我找不到任何方法。我目前正在使用 VS15。
【问题讨论】:
-
您是否考虑过将其与系统时钟同步,而不是只计算秒数?
-
current_time实际上是什么?
标签: c++ asynchronous timer chrono