Python 在调用插槽之前断开插槽是否安全?
我有几个对象需要更新。更新在单独的线程中完成,结果将通过Python 在调用插槽之前断开插槽是否安全?,python,signals,pyqt4,signals-slots,Python,Signals,Pyqt4,Signals Slots,我有几个对象需要更新。更新在单独的线程中完成,结果将通过pyqtSignal传输到对象。因此,更新方法在所有对象上循环,如下所示: 对象类: class MyObject(QObject): def __init__(self, id): QObject.__init__(self) self.id = id def catch_result(self, id, res): if id == self.id:
pyqtSignal
传输到对象。因此,更新方法在所有对象上循环,如下所示:
对象类:
class MyObject(QObject):
def __init__(self, id):
QObject.__init__(self)
self.id = id
def catch_result(self, id, res):
if id == self.id:
# do something with res
工人阶级:
class Worker(QObject):
result = pyqtSignal('QString', 'QString')
def __init__(self):
QObject.__init__(self)
self.objects = []
# create some objects here
def update_one(self, obj):
# do some computation -> will produce res
self.result.emit(obj.id, res)
def update_all(self):
for obj in objects:
self.result.connect(obj.catch_result)
self.update_one(obj)
self.result.disconnect(obj.catch_result) # is this safe?
插槽catch_result
与信号result
断开连接的那一刻,该信号已经发出。据我目前所知,在发出信号后,它将被放入接收方队列并进行相应的处理。但是,假设在调用插槽之前信号已断开,插槽是否仍能正确执行?在调用插槽之前但在发出相应信号之后断开插槽是否可以保存