我用 Python 和 PyQt 框架编写了一个桌面应用程序。 在这个软件中,我从LAN口读取数据,对数据进行处理,并显示在软件的主窗口中。我在一个单独的线程中从 LAN 端口读取。 而且为了从LAN口读取数据的过程不被打断,数据不丢失,我使用了multiprocessing。 我的问题是在进程之间共享数据。我目前正在使用“put”和“get”。但这似乎会减慢软件的速度。 我的另一个问题是我需要在 Lan 类的“解码”方法中保留一个变量并在下一次调用中使用它。请指导我如何做到这一点。 库.py:
from lan import Lan
self_C1=None
class GData:
def ....
#some code
def GetData(self,x1, ..):
......
lan=Lan()
y1,y2 ..= lan.decod(array1, ...)
q.put(y1)
......
......
def M1(z1,...):
global self_C1,....
......
Gd=GData()
tGetData = Process(target=Gd.GetData, args=(a1,a2,...,q,))
tGetData.start()
value=q.get()
self_C1.ShowNow(value,...)
.......
class C1(QtCore.QObject):
def M2(self, ...):
tM1 = Thread(target=M1, args=(b1,...))
tM1.start()
....
def M3(self,...):
global self_C1,....
self_C1=self
.....
def Show(self,value,...):
# send value eith Signal (self.x.emit()) for QMainWindow