qt串口调试助手实现多线程通信,new一个线程后,线程体在哪执行,怎么把要运行的代码放进new的线程里?
你先随便搜几个例子好好看看,就明白了
你现在连线程到底是个什么都没有概念,全停留在抽象的定义里
当你在 Qt 中使用多线程时,通常使用 QThread 类来创建新线程。为了在新线程中执行代码,你可以使用以下两种方法之一:
第1种方式实现方法如下:
class Worker : public QObject
{
Q_OBJECT
public slots:
void doWork()
{
// 这里是你想要在新线程中执行的代码
}
};
QThread* thread = new QThread;
Worker* worker = new Worker;
worker->moveToThread(thread);
connect(thread, &QThread::started, worker, &Worker::doWork);
thread->start();
thread->wait();
delete worker;
delete thread;
第2种方式在新线程中调用 exec() 函数,这种方法比较灵活,但也需要你自己手动管理线程生命周期。具体实现如下
QThread* thread = new QThread;
class Thread : public QThread
{
Q_OBJECT
protected:
void run() override
{
exec();
}
};
thread->start();
thread->wait();
delete thread;