Python 派送信号出现故障
我有一种情况,我使用pydispatch在程序的不同部分之间进行通信 一个类有一个属性设置器,每当属性值发生变化时,它都会发出一个信号。 代码的另一部分处理UI中显示该属性值的部分 下面显示了一些日志。您可以看到“sensor_status”(传感器状态)设置器使用不同的值调用(“Idle”,然后是“Meas Fluid”)。这是事件发生的适当顺序Python 派送信号出现故障,python,multithreading,kivy,publish-subscribe,Python,Multithreading,Kivy,Publish Subscribe,我有一种情况,我使用pydispatch在程序的不同部分之间进行通信 一个类有一个属性设置器,每当属性值发生变化时,它都会发出一个信号。 代码的另一部分处理UI中显示该属性值的部分 下面显示了一些日志。您可以看到“sensor_status”(传感器状态)设置器使用不同的值调用(“Idle”,然后是“Meas Fluid”)。这是事件发生的适当顺序 2020-09-29 11:58:27,841 - [METHOD_THREAD] SensorUnderCal:sensor_status:
2020-09-29 11:58:27,841 - [METHOD_THREAD] SensorUnderCal:sensor_status: Thread:[MainThread]
2020-09-29 11:58:27,922 - [M_TRACE] SensorUnderCal:sensor_status: Invoked (Setter): {'value': 'Idle'}
...
2020-09-29 11:58:27,928 - [METHOD_THREAD] SensorUnderCal:sensor_status: Thread:[handle_msg]
2020-09-29 11:58:27,928 - [M_TRACE] SensorUnderCal:sensor_status: Invoked (Setter): {'value': 'Meas Fluid'}
然后,接收代码发布一些日志消息,但顺序相反
[DEBUG ] [Set Sensor Status] {'value': 'Meas Fluid'}, thread: handle_msg
[DEBUG ] [Set Sensor Status] {'value': 'Idle'}, thread: handle_msg
日志记录格式不同,因为第一组代码使用自定义记录器,第二组使用Kivy附带的记录器
两组日志都显示了执行代码的线程。所有操作都在一个名为“handle_msg”的线程中执行,但设置“sensor_status”的第一个调用除外,它是在一个名为“MainThread”的线程中执行的。我怀疑这是我的问题的一部分,但我不确定如何排除故障,或者如何强制它们在同一个线程中执行,以便保持顺序。我不确定pydispatch如何处理执行顺序,所以我不知道如何控制它
有人能帮我吗
多谢各位