这更像是一个假设的问题;我对程序有一些问题,我想知道是否可能是因为多线程。
我有一个主线程和一个工作线程。工作线程通过串行端口与机器通信,当它从机器接收输出时,它发出Pyqt信号。主线程中有一个接收信号的插槽,并处理输出。处理是一个漫长的过程,包括从输出中创建另一个对象。
如果工作线程在第一个输出完成处理之前要调用主线程两次,会发生什么?
答案 0 :(得分:1)
当您的主线程执行长任务(源自事件)时,它不会处理任何新事件。所有新事件都将在特定于线程的队列中排队,并在以后执行事件循环时处理。如果目标线程正在休眠,新事件将排队,线程将被唤醒以处理它。
您可以阅读The Event System上的文档。