使用 a 有什么问题QTimer
?我同意任务调度程序是更好的选择。在这里,只有大约一半0,03%
的时间代码被执行,它确实应该做一些事情。如果确切的时间不那么重要,您可以增加计时器间隔和检查边界并减少不必要的调用。但是,如果您更喜欢这样的解决方案,这应该可以:
someclass::someclass(){
member_timer = new QTimer(this);
QObject::connect(member_timer, SIGNAL(timeout()), this, SLOT(check_time()));
member_timer->start(30000);
member_cleanup_performed = false;
}
void someclass::check_time(){
QTimer ctime = QTime::currentTime();
if(ctime.hour() == 3 && ctime.minute() == 0){
if(member_cleanup_performed == false){
this->cleanup();
member_cleanup_performed = true;
}
}else{
member_cleanup_performed = false;
}
}