Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 使用asyncio的简单非阻塞无限循环_Python_Python 3.x - Fatal编程技术网

Python 使用asyncio的简单非阻塞无限循环

Python 使用asyncio的简单非阻塞无限循环,python,python-3.x,Python,Python 3.x,我试图创建一个非阻塞while循环,但我的代码被阻塞(“下一步!”无法打印)。我感谢任何帮助或暗示。多谢各位 import asyncio class TaskManager: def __init__(self): self.start_loop() @asyncio.coroutine def running_loop(self) -> None: while True: # do something

我试图创建一个非阻塞while循环,但我的代码被阻塞(“下一步!”无法打印)。我感谢任何帮助或暗示。多谢各位

import asyncio

class TaskManager:

    def __init__(self):
        self.start_loop()

    @asyncio.coroutine
    def running_loop(self) -> None:
        while True:
            # do something async!

            yield from asyncio.sleep(1)

    def start_loop(self):
        loop = asyncio.get_event_loop()
        loop.run_until_complete(self.running_loop())
        print("Next!")

TaskManager()

运行,直到完成()
将执行此操作,它将等待协同程序完成,然后再继续,您必须一次调用一个函数,使其成为一个实际的协同程序,但是如果您没有一个主循环来调用
running\u loop
,那么您最好使用
threading

运行循环后的代码直到循环完成才会执行。