在使用线程的时候,不仅要关注线程开启的时机,同时还要关注线程安全退出,这样才能保证程序的健壮性,如果线程开启的较多,且开启关闭比较频繁,建议使用线程池来处理。开启线程有三种方式:
第一种:继承自QThread,然后重写run函数,把要处理的事项放在run函数中。
第二种:继承自QObject的类。
第三种:C++的开线程方式;
一,继承QThread的子线程
继承QThread是创建线程的一个普通方法。其中创建的线程只有run()方法在线程里的。
1,新建一个C++类,并继承自QThread
2,输入线程类的名称,并勾选图中所示内容,点击下一步,点击完成即可
3,在添加的线程类中,.h文件中添加run函数,用于重写
4,在线程类的cpp文件中,在run()中添加要处理的逻辑业务
5,子线程只能处理数据,不能直接在子线程操作界面(否则会崩溃),如果想要操作界面,需要将子线程的数据传递给界面主线程进行操作,这样就用到了我们信号和槽,子线程和主线程之间传递参数。子线程和主线程之间传递数据:
(1)首先,在主界面的头文件中,添加线程对象:
#include"usbthread.h"和usbThread myusbThread;