Qt学习系列4--使用线程

以前写qt程序的时候代码都是在一个gui线程中运行的,若是遇到一些比较耗时的操做会使界面失去响应,那么就须要把这些耗时的操做放到另外一个线程中去,而后经过信号和槽与主界面进行通讯。编程

若是百度的话,大部分结果都是从QThread派生一个类,而后重写run(),可是这种方法只有在run()中的代码是运行在新线程中的,其余部分仍然在主线程中多线程

下面介绍另外一种方法。
函数

从Qobject继承一个类(例如my_thread),将线程中要用到的东西定义在这个类中,函数用槽函数(使用信号槽机制调用,不用槽函数直接调用不会在新线程中执行),ui

而后在GUI线程中this

QThread *Mthread = new QThread(this);spa

my_thread *mthread = new my_thread;线程

my_thread->moveToThread(Mthread);继承

Mthread->start;qt

这样,my_thread中全部的东西就都在新线程了,经过链接信号和槽就能够调用里面的函数了thread

Qt多线程高级编程

待续......

相关文章
相关标签/搜索