【发布时间】:2020-07-23 20:04:26
【问题描述】:
我正在尝试创建一个不和谐机器人,我需要在另一个新线程中运行一个异步函数,因为主线程需要运行另一个函数(不和谐客户端)
我想要完成的事情:
# This methods needs to run in another thread
async def discord_async_method():
while True:
sleep(10)
print("Hello World")
... # Discord Async Logic
# This needs to run in the main thread
client.run(TOKEN)
thread = ""
try:
# This does not work, throws error "printHelloWorld Needs to be awaited"
thread = Thread(target=discord_async_method)
thread.start()
except (KeyboardInterrupt, SystemExit):
# Stop Thread when CTRL + C is pressed or when program is exited
thread.join()
我已尝试使用 asyncio 的其他解决方案,但我无法让其他解决方案发挥作用。
跟进:当你创建一个线程时,当你停止程序时如何停止该线程,即 KeyboardInterupt 或 SystemExit?
任何帮助将不胜感激,谢谢!
【问题讨论】:
标签: python python-3.x multithreading async-await python-asyncio