Qt QTimer est-il sûr d'arrêter de cette façon?

Est-il sûr d'arrêter de Qt minuterie de "timeout" signal/logement de fonction?
N'arrive pas à trouver toutes les informations dans la documentation de Qt sur le QTimer.

J'ai créé une minuterie qui est périodiquement de l'envoi d'un "keep alive" des messages sur le serveur.
Je veux que ce minuteur s'arrête quand il y a une sorte d'erreur lors de l'envoi de mon message.

private:
   QTimer* mpKeepAliveTimer;

Timer est initialisé comme ceci:

mpKeepAliveTimer = new QTimer(/* this */);

QObject::connect(mpKeepAliveTimer, SIGNAL(timeout()), this, SLOT(OnKeepAlive()));

mpKeepAliveTimer->start(KEEP_ALIVE_PERIOD);

Arrêté comme ceci:

if (mpKeepAliveTimer != NULL) //<-- Edited
{
    if (mpKeepAliveTimer->isActive() == true)
        mpKeepAliveTimer->stop();

    delete mpKeepAliveTimer;
    mpKeepAliveTimer = NULL;
}

Fonction de délai ressemble à ceci:

void Classname::OnKeepAlive()
{
   if (isErrorFound == true)
      mpKeepAliveTimer->stop();   //<---- IS THIS SAFE?
}

Grâce.

Ce troisième bloc de code pourrait utiliser le raffinage. Il n'est pas nécessaire pour arrêter le retardateur avant, il est détruit. L'ensemble du bloc peut être réduite à delete mpKeepAliveTimer; mpKeepAliveTimer = NULL;

OriginalL'auteur Gediminas | 2012-08-16