如何设置Python生成器在后台运行,并在生成结果时将其结果附加到列表中?
我有一个接收电报信息的程序(使用模块)。我希望它的生成器函数(接收消息)在后台运行,只需将接收到的任何消息附加到列表中即可。这个想法是程序可以做自己的事情,而不是因为等待消息而停止。只要觉得合适,它就会检查接收到的消息列表 那么,如何将这个生成器设置为在后台运行,这样它就不会停止程序等待消息如何设置Python生成器在后台运行,并在生成结果时将其结果附加到列表中?,python,generator,telegram,coroutine,Python,Generator,Telegram,Coroutine,我有一个接收电报信息的程序(使用模块)。我希望它的生成器函数(接收消息)在后台运行,只需将接收到的任何消息附加到列表中即可。这个想法是程序可以做自己的事情,而不是因为等待消息而停止。只要觉得合适,它就会检查接收到的消息列表 那么,如何将这个生成器设置为在后台运行,这样它就不会停止程序等待消息 import pytg import pytg.utils import pytg.receiver messages_received = [] @pytg.utils.coroutine def r
import pytg
import pytg.utils
import pytg.receiver
messages_received = []
@pytg.utils.coroutine
def receiver_function(tg_receiver):
while True:
message = (yield)
messages_received.append(message)
print("message received and added to list of messages received")
tg_receiver = pytg.receiver.Receiver()
tg_receiver.start()
tg_receiver.message(receiver_function(tg_receiver))
receiver.stop()
这似乎是python模块的工作。您可以生成一些工作线程以在后台运行并侦听电报消息。您应该创建一个线程管理器来创建工作线程,还可以将对消息列表的引用传递给工作线程。但这可能会变得很棘手,因为您似乎需要线程之间的共享对象