代码如下,这里是想写定时器按照设定时间执行时序操作,但是每次执行的时间与预设时间不符和,只有第一次执行时40多秒,再次执行时时间就会变短。请教一下是什么原因,该如何解决呢?
QTimer *TestTimer = new QTimer(this);
TestTimer->setTimerType(Qt::PreciseTimer);
cntnum = 0;
connect(TestTimer,
&QTimer::timeout,
this,
[=](){
TestTimer->stop();
TestTimer->start(10);
cntnum++;
//逻辑时序
if(cntnum < 4800)
{
//发送配置命令
if(cntnum == 10)
{
}
else if(cntnum == 20)
{
}
else if(cntnum == 30)
{
}
else if(cntnum == 40)
{
}
else if(cntnum == 50)
{
}
else if(cntnum == 60)
{
}
else if(cntnum == 100)
{
}
else if(cntnum == 550)
{
}
else if(cntnum == 600)
{
}
else if(cntnum == 4600)
{
//发送指令等
}
else if(cntnum == 4700)
{
//发送指令等
}
else if(cntnum == 4750)
{
TestTimer->stop();
//执行数据解析之类的耗时操作
TestTimer->start(10);
}
else
{
}
}
else//测试结束
{
}
});
TestTimer->setSingleShot(false);
TestTimer->start(10);