Qt 多线程的用法还是比较简单的,也比较好用,接下来我们就分析分析如何使用。
说起Qt 线程的使用方式,一般有2种使用方式,具体哪种比较好看自己心情了,现在有官方的推荐用法,用不用还是看你心情的
好,进入正题,我们现在只追求如何使用,后续有时间在慢慢剖析想想为什么这样也可以,,,:
第一种方式:直接继承QThread方式(官方不推荐使用这种)
1>新建一个类,比如叫A
------A.h----头文件
#include
class A :public QThread //继承QThread
{
A();
~A();
protected:
virtual void run(); //添加这个2,这个是重点,子线程都是在里面的
}
------A.cpp----源文件
void A::run()
{
///这里写你需要执行用子线程需要执行的各种语句,最好全部所有定义都要在这函数里,先用嘛,,
// 不然,先呵呵。
}
-----看如何使用:
int main()
{
A a;
a.start(); //一定要这样调用,不能直接调用run函数,不然会是主线程执行的
}
结语:这样的方式就实现了多线程使用啦,在qt里面一定要继承改写,如果是觉得麻烦的应该是还没有适应面向对象思想,没关系,多看几遍就好了,我当初也不是很习惯这样,觉得开线程不如直接调用类似CreateThread();这样的函数看起来多明朗多舒服呀,。。。。
这里解释一下补充:
A a;//创建了一个对象,然后会执行A的构造函数,这个执行线程呢,就是我们的主线程啦,
a.start(); //这语句会开辟一个子线程去执行run函数,所以run()里面都是 由子线程执行的
以上这两句我们就产生了线程啦,
但是!!!
如果你这样调用
a.run(); //这样的话,就是主线程去执行run()函数啦啦啦,就好比主线程去执行构造函数一样
所以记住,用多线程就调用start()函数,没错的
最后,以上就是qt多线程用法1的简单演示,先能跑起来就可以了,等用几次了在去剖析剖析,啊这样也可以啊 。。。
比如 啊,跨线程操作的各种无脑揪心的问题,,,,,,