首先,我使用的是老式的信号和插槽,以及 QThreads。
我有两个线程,一个用于 GUI,另一个用于工作。当工作人员发出信号时,GUI 在自己的线程中处理它。
作为该过程的一部分,工作人员还将一个对象传递给插槽,因此我使用以下内容:
self.emit(SIGNAL(my_signal(PyQT_PyObject), self.object_to_pass)
GUI 必须解释这个对象;事实上,它会读取属性并相应地更新进度条。插槽定义为:
def my_slot(self, my_state):
self._state = my_state #so object_to_pass comes in from the worker here
我的问题如下:访问传递的对象线程安全吗?如果工人改变了 object_to_pass 的某些属性会发生什么,即 self._state 也会改变?