嗨我想在Qt的控制檯應用程序中創建線程。Qthread調用只運行一次
我的主要方法是:
#include<featurematcher.h>
#include<QCoreApplication>
int main(int argc, char *argv[])
{
QCoreApplication a(argc, argv);
FeatureMatcher * fm = new FeatureMatcher();
fm->start();
return a.exec();
}
我FeatureMatches類如下:
#ifndef FEATUREMATCHER_H
#define FEATUREMATCHER_H
#include<QThread>
class FeatureMatcher:public QThread
{
Q_OBJECT
public:
FeatureMatcher();
void run();
};
#endif // FEATUREMATCHER_H
和CPP文件:
#include "featurematcher.h"
#include <iostream>
FeatureMatcher::FeatureMatcher()
{
}
void FeatureMatcher::run()
{
std::cout<<"Process"<<std::endl;
}
我的問題是,當我開始運行程序它只調用run方法一次。我期待輸出爲無限數量的「process」打印出來,但它是打開的打印一次。 我在哪裏失蹤?
你想用QThread解決什麼問題?如果您期望重複調用run,則可能完全不需要該線程,而是使用QTimer。 – simon
線程只能運行'run'一次。如果你想多次執行任務,你將需要一個循環。 – Alexander
@亞歷山大謝謝。我在圖形用戶界面上使用線程。在那裏,它正在調用運行本身,但後來我才知道這是因爲GUI正在重新繪製自己並一次又一次地調用線程。 –