我正在尝试使用进度指示器,其中一项任务正在执行某项任务,而另一项则表示进度。我的 hello world 版本在其中一项任务中进入睡眠状态,但从未醒来。
我错过了什么?
非常感谢
import asyncio
import sys
import time
import itertools
progress = True
def get_progress():
return progress
async def define_progress():
print("progress started")
await asyncio.sleep(2)
progress = False
print("progress ended")
async def run_spinner(msg):
spinner = itertools.cycle(['-', '/', '|', '\\'])
sys.stdout.write("{0} ".format(msg))
while(get_progress()):
sys.stdout.write("{0}".format(next(spinner)))
sys.stdout.flush()
time.sleep(0.3)
sys.stdout.write('\b')
async def main():
msg = "start logic"
await asyncio.gather(run_spinner(msg), define_progress())
loop = asyncio.get_event_loop()
try:
loop.run_until_complete(main())
finally:
loop.close()
输出如下所示,而第二行无限运行微调器。
进度开始
创建包\