admin 管理员组

文章数量: 887031


2024年1月18日发(作者:捕蝇纸豆瓣)

qtthread简单写法

在Qt中,使用`QThread`进行多线程编程可以非常简单。以下是一个简单的例子,展示了如何创建一个新的线程来运行一个任务:

```cpp

include

include

class MyTask : public QObject {

Q_OBJECT

public:

MyTask() {}

~MyTask() {}

public slots:

void doWork() {

for (int i = 0; i < 10; ++i) {

qDebug() << "Task is working:" << i;

QThread::sleep(1); // 模拟耗时任务

}

}

};

int main(int argc, char argv[]) {

QApplication app(argc, argv);

QThread thread = new QThread();

MyTask task = new MyTask();

task->moveToThread(thread); // 将任务移动到线程中

QObject::connect(thread, &QThread::started, task,

&MyTask::doWork); // 当线程开始时,执行任务

thread->start(); // 开始线程

thread->wait(); // 等待线程结束

delete thread; // 删除线程对象

delete task; // 删除任务对象

return ();

}

```

在这个例子中,我们创建了一个继承自`QObject`的`MyTask`类,并定义了一个槽函数`doWork`来执行任务。这个任务只是简单地打印一些信息,并模拟了一个耗时操作(使用`QThread::sleep`)。然后,我们在主函数中创建了一个`QThread`对象和一个`MyTask`对象,并将任务移动到了线程中。最后,我们连接了线程的`started`信号到任务的`doWork`槽,并启动了线程。


本文标签: 任务 线程 创建