我对Qt(PySide)for python还不熟悉,正在研究QThread的良好用法。你知道吗
我有一个worker线程和worker对象,后者在构造之后被移动到worker线程中。你知道吗
class Foo:
def __init__(self):
self.barThread = QThread()
self.barWorker = barWorker()
self.barWorker.moveToThread(self.barThread)
我的问题是,在移动到新线程之后,barThread结束时barWorker是否被销毁?你知道吗
因为我更喜欢这样做(防止以线程不安全的方式访问对象),但是尽管被传递到新线程,worker看起来还是被垃圾收集的。你知道吗
class Foo:
def __init__(self):
self.barThread = QThread()
def startWork(self):
barWorker = BarWorker()
barWorker.moveToThread(self.barThread)
谢谢。你知道吗
线程不拥有移动到它的对象的所有权,因此它也不承担删除它们的责任。所发生的一切就是改变了对象的线程关联性。清除辅助对象完全由调用方负责。你知道吗
在C++中,可以创建具有{{CD1>}的工作对象,然后将线程的{{< CD2>}信号连接到工作人员的^ {< CD3>}槽。但这在Python中是行不通的,因为没有指针。一种可能的解决方法是使用函数外壳来维护临时引用,而不是:相关问题 更多 >
编程相关推荐