क्या यह क्यूटी के टाइमर को "टाइमआउट" सिग्नल/स्लॉट फ़ंक्शन में रोकना सुरक्षित है? 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?
}
धन्यवाद।
वह तीसरा कोड ब्लॉक रिफाइनिंग का उपयोग कर सकता है। नष्ट होने से पहले टाइमर को रोकने की जरूरत नहीं है। पूरे ब्लॉक को हटाया जा सकता है 'mpKeepAliveTimer हटाएं; mpKeepAliveTimer = NULL; ' – cgmb