gpt4 book ai didi

c++ - 运行新线程 Qt C++

转载 作者:太空狗 更新时间:2023-10-29 23:46:07 25 4
gpt4 key购买 nike

我想在主应用程序的单独线程中运行代码,为此我创建了一些文件:

线程2.h

#ifndef THREAD2_H
#define THREAD2_H
#include <QThread>

class thread2 : public QThread
{
Q_OBJECT

public:
thread2();

protected:
void run();

};

#endif // THREAD2_H

线程2.cpp

#include "thread2.h"

thread2::thread2()
{
//qDebug("dfd");
}
void thread2::run()
{
int test = 0;
}

主文件叫main.cpp

#include <QApplication>
#include <QThread>
#include "thread1.cpp"
#include "thread2.h"

int main(int argc, char *argv[])
{
QApplication a(argc, argv);

thread2::run();

return a.exec();
}

但它不起作用......

Qt Creator 告诉我:“不能在没有对象的情况下调用成员函数‘virtual void thread2::run()’”

谢谢!

最佳答案

像这样调用它:thread2::run() 是调用 static 函数的方式,而 run() 不是.

此外,要启动一个线程,您无需显式调用 run() 方法,您需要创建一个线程对象并对其调用 start()应该在适当的线程中调用您的 run() 方法:

thread2 thread;
thread.start()
...

关于c++ - 运行新线程 Qt C++,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13631624/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com