使用套接字recv的无限循环杀死线程



这是一个从主UI分离的线程。

def listenReply(self):
while True:
fromNodeRED = self.nodeRED_sock.recv(1024).decode()
print(fromNodeRED)
...
listenThread = Thread(target=self.listenReply)
listenThread.start()

self.close()关闭应用程序之前,我有问题终止它。我试过

listenThread.terminate()

应用程序挂起。不知道该如何处理。感谢任何指点。

您可以将测试从简单的while True更改为可以更改的变量的测试:

def listenReply(self):
while self.keepRunning:
fromNodeRED = self.nodeRED_sock.recv(1024).decode()
print(fromNodeRED)
...
self.keepRunning = True
listenThread = Thread(target=self.listenReply, daemon=True)
listenThread.start()
...
self.keepRunning = False

最新更新