Qt 4.8.7, qnx650Хотелось узнать, у меня ли только странно работает qthread. Он зацикливает функцию в которую приходит сигнал. Приложил картинку и код. Делал через movetothread результат тот же
void CModule :: init()
{
channelThread = new ChannelThread();
connect(channelThread, SIGNAL(message(QString)), this, SIGNAL(message(QString)));
connect(channelThread, SIGNAL(finished()), channelThread, SLOT(deleteLater()));
connect(this, SIGNAL(startInit()), channelThread, SLOT(start_init()));
channelThread->start();
emit startInit();
}
.h
class ChannelThread : public QThread
{
Q_OBJECT
public:
ChannelThread();
~ChannelThread();
void run();
public slots:
void start_init();
signals:
void message(QString); ///< Ñîîáùåíèå
};
.cpp
ChannelThread :: ChannelThread()
: QThread()
{
}
ChannelThread :: ~ChannelThread()
{
quit();
}
void ChannelThread :: run()
{
emit message("Çàøåë â ðàí");
exec();
}
void ChannelThread :: start_init()
{
emit message("Çàøåë â èíèò");
}