¿Es seguro detener el cronómetro de Qt en su función de ranura/señal de "tiempo de espera"? Parece que no se puede encontrar información en la documentación de Qt sobre QTimer.Qt QTimer ¿es seguro detenerlo de esta manera?
He creado un temporizador que periódicamente envía un mensaje de "mantener vivo" al servidor. Quiero detener este temporizador si hay algún tipo de error al enviar mi mensaje.
private:
QTimer* mpKeepAliveTimer;
temporizador se inicializa como esto:
mpKeepAliveTimer = new QTimer(/* this */);
QObject::connect(mpKeepAliveTimer, SIGNAL(timeout()), this, SLOT(OnKeepAlive()));
mpKeepAliveTimer->start(KEEP_ALIVE_PERIOD);
Detenido así:
if (mpKeepAliveTimer != NULL) // <-- Edited
{
if (mpKeepAliveTimer->isActive() == true)
mpKeepAliveTimer->stop();
delete mpKeepAliveTimer;
mpKeepAliveTimer = NULL;
}
función de tiempo de espera es el siguiente:
void Classname::OnKeepAlive()
{
if (isErrorFound == true)
mpKeepAliveTimer->stop(); // <---- IS THIS SAFE?
}
Gracias.
Ese tercer bloque de código podría usar refinación. No es necesario detener el temporizador antes de que se destruya. El bloque completo se puede reducir a 'eliminar mpKeepAliveTimer; mpKeepAliveTimer = NULL; ' – cgmb