CPU满格的元凶,这回是由于QTimer引起的(默认interval是0,太猛)
2016-01-21 20:59
531 查看
timer_space = new QTimer();
qDebug() << SystemGlobal::m_app->SpaceUse;
qDebug() << timer_space->interval();
if (!SystemGlobal::m_app->SpaceUse>=95) {
timer_space->setInterval(60*60*1000); // 每小时提醒一次
connect(timer_space, SIGNAL(timeout()), this, SLOT(SpaceError()));
}
//timer_space->start();
我把start()屏蔽后,CPU立刻降了下来。查找说明文档一看:
The default value for this property is 0. A QTimer with a timeout interval of 0 will time out as soon as all the events in the window system's event queue have been processed.
结果发现自己忘了手动设置interval。
-----------------------------------------------------------
另外,我这个表达式也有错误,应该写成:
if (!(SystemGlobal::m_app->SpaceUse>=95))
此时单步执行可以进入if语句。按照原来的写法,直接跳过if语句。
qDebug() << SystemGlobal::m_app->SpaceUse;
qDebug() << timer_space->interval();
if (!SystemGlobal::m_app->SpaceUse>=95) {
timer_space->setInterval(60*60*1000); // 每小时提醒一次
connect(timer_space, SIGNAL(timeout()), this, SLOT(SpaceError()));
}
//timer_space->start();
我把start()屏蔽后,CPU立刻降了下来。查找说明文档一看:
interval : int
This property holds the timeout interval in milliseconds.The default value for this property is 0. A QTimer with a timeout interval of 0 will time out as soon as all the events in the window system's event queue have been processed.
结果发现自己忘了手动设置interval。
-----------------------------------------------------------
另外,我这个表达式也有错误,应该写成:
if (!(SystemGlobal::m_app->SpaceUse>=95))
此时单步执行可以进入if语句。按照原来的写法,直接跳过if语句。
相关文章推荐
- Qt中用正則表達式来推断Text的语种,主要通过推断unicode的编码范围
- QTableView的应用(Qss美化,加checkbox)
- 自己整的os也能跑qt
- Qt之自定义界面(窗体缩放-跨平台终极版)
- Qt之自定义界面(窗体缩放-跨平台终极版)
- Qt之自定义界面(窗体缩放)
- Qt之自定义界面(窗体缩放)
- PyQt学习笔记01-Qt基本概念进阶篇
- ARM opencv结合Qt测试
- qt
- Qt之自定义界面(添加自定义标题栏)
- Qt之自定义界面(添加自定义标题栏)
- Qt:parent参数
- PyQt学习笔记-开端篇 信号和槽 signal slot
- 搭建Qt界面的OpenCV开发环境
- Halcon C++混合编程学习之Qt 实现检测焊接点
- [OpenCV] -- win7下配置OpenCV的Qt开发环境
- qt 上下页布局与代码规范
- QT中event事件机制与signal关系
- 性能分析工具AQTime