原理:
1、使用QThread生成一个线程对象
2、任务对象moveToThread
因为moveToThread是QObject类的函数,所以定义任务对象的类的时候,要让该类继承自QObject函数,继承其moveToThread函数。
3、QThread 生成的线程对象调用run函数,开启线程
4、使用信号和槽,连接任务对象的任务处理函数。注意,第二个函数的主体是任务处理对象
5、如何释放该线程资源,还不清楚。研究中
- myWav = new UseWav(); //处理任务的对象
- QThread *thread = new QThread(); //创建一个线程对象
-
- myWav->moveToThread(thread); //将人物对象添加到线程对象中
-
- thread->start(); //线程启动
-
- qDebug() << "The adress of the server" << QThread::currentThread();
-
- connect(btn,&QPushButton::clicked,myWav,[=](){ //注意这里的信号接受者
- myWav->wavWorking("aplay 0.wav"); //任务处理函数
- });