博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

QThread的一些使用心得

Posted on 2017-02-04 01:16  SolHe  阅读(914)  评论(8编辑  收藏  举报

qthread这个类主要用于解决pyqt中多线程的问题,常见用法是将后台代码封装在该类的run()方法中,再对qthread对象执行start()函数来启动线程。

但往往一个业务会有粒度划分,多个粒度就意味会有多个qthread对象,要想保证这些qthread对象按照顺序依次在后台执行就变得非常有必要了。

这这里我想到利用信号机制来解决这个问题,qthread1的run()函数尾部写入self.emit(signal1,args),将signal1绑定在function2上,qthread2.start()语句放在function2中,这样qthread1执行结束之后就会发出signal1触发function2,继而执行function2内部的qthread2.start()语句。

这种链式的执行方式非常接近回调函数的思路,屡试不爽,记录一下。