我正在尝试同时运行两个无限循环的函数,稍后将在连接到我的服务器的每个客户端的套接字聊天室应用程序中实现这一点。问题是,每当我试图收集的函数在无限while循环中运行时,我的程序将只运行收集的第一个函数。
这是我的代码:
async def increment():
global money
while True:
money += 1
async def displayMoney():
global money
while True:
input(money)
async def main():
global money
await asyncio.gather(increment(), displayMoney())
asyncio.run(main())
抱歉,我是异步编程的新手。
如果在循环结束时添加await asyncio.sleep(0)
,则允许循环相互提供运行时间。然而,这意味着你不能像我试图做的那样运行任何停止主事件循环的东西,比如time.sleep(1)
或input()
。这很好,因为我不需要在我的主程序中使用任何这些,因为它使用tkinter-gui。