[23]QT-多线程QThread中start()和run()函

2023-12-03  本文已影响0人  豚大叔的小屋

1.基本概念

一个QThread类的对象管理一个子线程,自定义一个类继承自QThread,并重写虚函数run(),在run()函数里实现线程需要完成的复杂操作(注意QThread只有run函数是在新线程里的)。
一般在主线程创建工作子线程,并调用start(),开始执行工作子线程的任务。start()会在内部调用run()函数,进入工作线程的事件循环,在run()函数里调用exit()或quit()可以结束线程的事件循环,或者在工作主线程里调用terminate()强制结束线程。
void start(Priority = InheritPriority);
void terminate();
void quit();

2.操作流程

1)创建一个继承QThread线程类的子类,记得包含头文件QThread
2)重写父类的虚函数run()方法,在该方法内部实现子线程需要完成的复杂业务
3)在主线程中创建子线程对象 subThread* st = new subThread;
4)启动子线程,调用start()方法:st->start();

上一篇下一篇

猜你喜欢

热点阅读