Безопасно ли останавливать таймер Qt в его функции сигнала/слота «тайм-аут»? Не могу найти никакой информации в документации Qt о QTimer .
Я создал таймер, который периодически отправляет на сервер сообщения «оставаться в живых». Я хочу, чтобы этот таймер был остановлен, если при отправке моего сообщения произошла какая-то ошибка.
private:
QTimer* mpKeepAliveTimer;
Таймер инициализируется так:
mpKeepAliveTimer = new QTimer(/* this */);
QObject::connect(mpKeepAliveTimer, SIGNAL(timeout()), this, SLOT(OnKeepAlive()));
mpKeepAliveTimer->start(KEEP_ALIVE_PERIOD);
Остановился вот так:
if (mpKeepAliveTimer != NULL) // <-- Edited
{
if (mpKeepAliveTimer->isActive() == true)
mpKeepAliveTimer->stop();
delete mpKeepAliveTimer;
mpKeepAliveTimer = NULL;
}
Функция тайм-аута выглядит так:
void Classname::OnKeepAlive()
{
if (isErrorFound == true)
mpKeepAliveTimer->stop(); // <---- IS THIS SAFE?
}
Спасибо.