gpt4 book ai didi

python - QThreads Python - 通信

转载 作者:太空宇宙 更新时间:2023-11-03 17:28:02 25 4
gpt4 key购买 nike

我只是想知道是否可以在两个 QThread 之间通信数据。我已经知道如何在 QThread 启动之前输入数据,然后调用 run 方法。但我遇到了一种情况,我使用 QThread (A) 从伺服电机 Controller 获取串行数据并使用主 GUI 显示它。我还运行另一个 Qthread (B),它执行几个长进程(在 Qtheard (B) 内执行大约 1000 行代码)。QThread(B)执行到一半时,我想使用QThread(A)中的串行数据并将其记录在QThread(B)中。当 QThread (B) 准备好记录时,必须尝试将串行数据从 QThread (A) 传输到 QThread (B)。

执行此操作的最佳方法是什么?我尝试过使用全局变量,但没有成功。还有哪些其他选项可用?

请有人给我一些建议,先谢谢了!

桑卡:)

最佳答案

您可以使用队列(只是一个例子):

from queue import Queue
from threading import Thread

# A thread that produces data
def producer(out_q):
while True:
# Produce some data
...
out_q.put(data)


# A thread that consumes data
def consumer(in_q):
while True:
# Get some data
data = in_q.get()
# Process the data
...

# Create the shared queue and launch both threads
q = Queue()
t1 = Thread(target=consumer, args=(q,))
t2 = Thread(target=producer, args=(q,))
t1.start()
t2.start()

更新:QThreads 的更具体示例 https://stackoverflow.com/a/25109185/1698180

关于python - QThreads Python - 通信,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32313437/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com