【发布时间】:2017-07-20 09:49:47
【问题描述】:
我一直在学习多线程,特别是在 PyQt 5 应用程序的上下文中。
最初我使用“线程”实现了一个版本,但后来得知我应该使用“QThread”来允许使用信号/插槽,例如:
workerThread = QThread()
workerObject = Worker(cmdlist)
workerObject.moveToThread(workerThread)
workerThread.started.connect(workerObject.run)
workerObject.finished.connect(workerThread.quit)
但是,是否有可能设计一个系统:
- 每个类都与运行时创建的线程相关联。
- 然后程序的“主要”组件可以调用这些函数中的函数 类,它们在给定的单独线程中执行 类。
行为示例如下:
thread = threading.Thread(target=self.run, args=())
但是我将如何使用 QThread 实现类似的行为?
还是我对 Python 中线程的理解不正确?
【问题讨论】:
-
我相信我的答案中的链接详细解释了如何将提升功能推广到线程。但是,为每个类关联线程并不是一个好主意。那是糟糕的设计。仅将长时间运行的任务放在线程中。线程越明确越好。
标签: python-3.x pyqt pyqt5 python-multithreading