先说信号槽:
Qt系列的编程在有些时候如果想让不确定的一堆程序结果规范有序地输出,那么使用信号槽是一个很好的解决方法,我们只需要在类中定义信号函数和槽函数,并且在槽函数中编写接收处理的代码就行。
然后是线程池:
线程池的使用方法也不说了,但是如何将线程池与信号槽结合起来呢?
之前我在网上逛了很长时间,饶了很多圈子也没找到解决方案,但是最终我还是解决了,方法就是在使用线程池时将使用线程池的类本身传到线程池函数中。这就意味着除了一些你自己定义的传值参数外还要将外部的类本身传到里面。
这样以来线程池中的每个任务就能使用传进来的外部类emit->发送结果到信号函数了,然后Qt的机制就是将信号函数接收到的结果排列并发送到槽函数进行处理,这样做是可行的。注意这里线程池中的任务如果直接调用槽函数去处理结果的话,有时候也能处理,此事程序会蹦出一堆错误窗口,因为槽函数会冲突(我是这样理解的)。
总之我的理解就是这样…
“Qt系列信号槽与线程池问题”上的5条回复
窝记得qt的信号槽不是线程安全的
不知道,窝是刚入坑Qt不久
话说你哪位啊 😆 ?
乃猜
不造.. ❓
JIngJingHack 目测说了乃也不认识~