在继承自QThread后,除了重写run函数之外,你可以直接调用其他成员函数来实现类的功能。
以下是一个示例:
#include <QCoreApplication>
#include <QDebug>
#include <QThread>
class MyThread : public QThread
{
public:
void someFunction()
{
qDebug() << "Hello from someFunction!";
}
};
int main(int argc, char *argv[])
{
QCoreApplication a(argc, argv);
MyThread thread;
// 启动线程
thread.start();
// 在主线程中调用其他成员函数
thread.someFunction();
return a.exec();
}
在上述示例中,我们创建了一个名为MyThread的类,并从QThread继承。我们定义了someFunction函数,在该函数内部输出一条消息。在主线程中,我们首先启动线程,然后直接调用thread对象的someFunction函数。
需要注意的是,在这种情况下,someFunction将在主线程中执行,而不是在线程对象所属的新线程中执行。因此,在主线程中调用某个已启动的子线程对象的成员函数时,请确保对临界区和资源进行适当的同步和保护。
希望这个示例能够回答你的问题!
内容由零声教学AI助手提供,问题来源于学员提问