最近看了Qt的线程内容,对QThread子类实例运行在哪个线程里有以下理解,不知对不。麻烦知道的高手给予解答。
Thread是QThread的实现子类。其中实现了run方法(新线程的入口点),show方法。
class Thread : public QThread
{
public:
explicit Thread();
~Thread();
void show();
virtual void run();
...
};
int main(int argc, char *argv[])
{
QApplication app(argc, argv);
Thread* test = new Thread();
test->run();
test->show();
return app.exec();
}
我想问下:run方法实际是在一个新的线程中运行;show方法及test中的其它所有方法都是在main函数运行的主线程下运行,与run方法是独立的两个线程。不知这种理解对否?
------解决思路----------------------
你没调用start(),新线程就没有起来。按你的写法,属于直接调用,run()、show()都在主线程。
可以参考《Qt on Android核心编程》的多线程章节,有详细讲述。