QThread使用方法:
第一种方法(简单):
- 子类直接继承QThread,重写run()函数。
- 在主线程start()。
第二种方法(灵活):
- 子类继承QObject,自定义信号槽。
- 在主线程moveToThread(),然后start()。
- 注意事项:
- 不能在主线程中直接调用子线程方法。
- 子线程不能有父对象,也不能操作主线程窗口
- 注意事项:
QThreadPool使用方法:
子类:
子类继承QObject和QRunnable
class MyClass: public QObject,public QRunnable//QObject要在QRunnable前面
- QObject是为了使用信号槽。
- QRunnable是一个可运行基类。
重写run()函数。
// QRunnable interface
public:
virtual void run() override;
主类:
QThreadPool::globalInstance()->setMaxThreadCount(3);
MyClass* myClass = new MyClass;
QThreadPool::globalInstance()->start(myClass );