Qt之先用了再说系列-多线程方式1

Qt 多线程的用法还是比较简单的,也比较好用,接下来我们就分析分析如何使用。

  说起Qt 线程的使用方式,一般有2种使用方式,具体哪种比较好看自己心情了,现在有官方的推荐用法,用不用还是看你心情的

    好,进入正题,我们现在只追求如何使用,后续有时间在慢慢剖析想想为什么这样也可以,,,:

  

  第一种方式:直接继承QThread方式(官方不推荐使用这种)

      1>新建一个类,比如叫A

          

          ------A.h----头文件

          #include   //添加这个1

          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的简单演示,先能跑起来就可以了,等用几次了在去剖析剖析,啊这样也可以啊  。。。

    比如 啊,跨线程操作的各种无脑揪心的问题,,,,,,

 

  

 

        

 

你可能感兴趣的:(Qt之先用了再说系列-多线程方式1)