作者: 一去、二三里
个人微信号: iwaleon
微信公众号: 高效程序员
要实现一个线程很简单,写一个函数,绑定一些数据。如果有必要的话,可以使用 mutex 或者其他方法来保证和线程的安全交互。
在 Qt 中,使用线程有几种不同的方式,下面主要演示 QThread + QObject(worker),此方式主要用于涉及事件驱动的编程和跨线程的信号/槽。
worker-object
在使用 worker-object 时,最主要的事情是要记住 QThread 不是一个线程,而是一个线程对象的包装器。这个包装器提供了信号、槽和方法,来轻松地使用 Qt 中的线程对象。
具体的使用,分为以下几步:
- 准备一个 QObject 子类,其中包含了所有需要的功能。
- 创建一个 QThread 实例,使用
QObject::moveToThread(QThread*)
将 QObject 对象移动至线程中。 - 设置适当的信号/槽连接,以保证正常退出。
- 调用
QThread::start(