我正在开发一个使用选项卡小部件并具有多个选项卡的 GUI 应用程序。我有一个有一张桌子的标签。我创建了一个每 5 秒刷新一次表格的方法。这是我的代码:
void MainWindow::delay(int seconds)
{
QTime dieTime = QTime::currentTime().addSecs(seconds);
while( QTime::currentTime() < dieTime )
QCoreApplication::processEvents(QEventLoop::AllEvents, 100);
}
void MainWindow::on_tabWidget_currentChanged(int inx)
{
if (inx == 3)
{
while (ui->tabWidget->currentIndex() == 3)
{
delay(5);
refreshTable();
}
}
}
我遇到的问题是,每当 while 循环运行时,我的 CPU 大约有 30% 被用完。基本上,应用程序是在说“我们到了吗?我们到了吗?我们到了吗?” 这似乎吸走了CPU。
有没有办法限制系统资源,或者有办法阻止它占用大部分 CPU?