से शुरू नहीं किया जा सकता है मैं क्यूटी एसडीके से उदाहरण का पालन करें, QThread
उपवर्ग में टाइमर शुरू करने, लेकिन मैं चेतावनी मिलती रहती है और धागा घड़ी कभी नहीं शुरू होता है।क्यूटी धागे: हो रही है QObject :: startTimer: टाइमर एक और धागा चेतावनी
NotificationThread::NotificationThread(QObject *parent)
:QThread(parent),
m_timerInterval(0)
{
moveToThread(this);
}
NotificationThread::~NotificationThread()
{
;
}
void NotificationThread::fire()
{
WRITELOG("A::fire called -- currentThread:" + QString::number((int)currentThread()->currentThreadId()));
QVector<StringPer>* batchVectorResult = new QVector<StringPer>();
emit UpdateGroupNotifications(batchVectorResult);
}
void NotificationThread::run()
{
connect(&m_NotificationTimer, SIGNAL(timeout()),
this,SLOT(fire(),Qt::DirectConnection));
WRITELOG("A::run() worker thread -- currentThread:" + QString::number((int)currentThread()->currentThreadId()));
//SetNotificationTimerFromConf();
QVariant val(ConfigSettings::getInstance()->ReadFromSettingsReturnVariant(SETTINGS_KEY_NOTIFICATIONTHREAD));
int interval = val.toInt();
m_NotificationTimer.setInterval(interval);
m_NotificationTimer.start();
QThread::exec();
}
void NotificationThread::SetNotificationTimerFromConf()
{
QVariant val(ConfigSettings::getInstance()->ReadFromSettingsReturnVariant(SETTINGS_KEY_NOTIFICATIONTHREAD));
int interval = val.toInt();
m_NotificationTimer.setInterval(interval);
}
void NotificationThread::UpdateNotificationTimerRT(int timerInterval)
{
m_NotificationTimer.setInterval(m_timerInterval);
}
void NotificationThread::Execute(const QStringList batchReqList)
{
QVector<QString>* batchVectorResult = new QVector<QString>();
start();
}
मैं Execute()
साथ मुख्य जीयूआई से धागा शुरू: यहाँ कोड है।
या सिर्फ एक प्रारंभकर्ता सूची का उपयोग करें: वर्ग MyClass: सार्वजनिक QObject { Q_OBJECT सार्वजनिक: MyClass(): m_thread (यह) {} QTimer m_timer; } – nocnokneo