Мой threadcheck.h
#include <QThread>
#include <QDebug>
#include <QMutex>
class ThreadCheck : public QThread
{
Q_OBJECT
public:
explicit ThreadCheck(QObject *parent = 0);
int Val() const;
signals:
void signalReceived();
protected:
void run();
public slots:
void slotReceived();
private:
QMutex mutex;
int num;
};
Мой файл threadcheck.cpp
#include "threadcheck.h"
ThreadCheck::ThreadCheck(QObject *parent) :
QThread(parent)
{
connect(this,SIGNAL(signalReceived()),this,SLOT(slotReceived()));
num = 0;
}
int ThreadCheck::Val() const
{
return num;
}
void ThreadCheck::slotReceived()
{
mutex.lock();
qDebug() << "hello";
mutex.unlock();
}
void ThreadCheck::run()
{
while(1)
{
emit signalReceived();
}
}
основной .cpp - это
#include <QCoreApplication>
#include "threadcheck.h"
int main(int argc, char *argv[])
{
QCoreApplication a(argc, argv);
ThreadCheck threadCheck;
threadCheck.start();
while(1);
return a.exec();
}
Когда я запускаю этот поток из основного, он не показывает, что ни один выходной слот никогда не выполняется. В идеале он должен продолжать печатать привет.
Пожалуйста, предложите решение.
false
- person UmNyobe   schedule 13.11.2012run()
и слоты, которые вызываются только с сигналами, потому что они никогда не будут выполняться одновременно. - person UmNyobe   schedule 13.11.2012