这是我的基本代码的样子
def heavylifting(self):
# Do the heavy lifting
print('Done!')
async def async_heavylifting(self):
await self.heavylifting()
以下是无法使用的各种方法:
示例1-什么都没发生。
def do_the_things(self):
loop = asyncio.new_event_loop()
asyncio.set_event_loop(loop)
asyncio.run_coroutine_threadsafe(self.async_heavylifting(), loop)
Example2-这会引发无事件循环错误
def do_the_things(self):
loop = asyncio.new_event_loop()
asyncio.set_event_loop(loop)
asyncio.create_task(self.async_heavylifting())
Example3-什么都没发生
def do_the_things(self):
loop = asyncio.new_event_loop()
asyncio.set_event_loop(loop)
loop.create_task(self.async_heavylifting())
Example4-不能一劳永逸。举重电话中的障碍物
def do_the_things(self):
loop = asyncio.new_event_loop()
asyncio.set_event_loop(loop)
loop.run_in_executor(None, self.heavylifting())
我做错了什么?如何使我的功能运行?
注意-当我调用举重函数时,我想实现即弃功能。我不想等待它完成]]
[这是我的基本代码看起来像是def heavylifting(self):#执行沉重的打印('Done!')异步def async_heavylifting(self):等待self.heavylifting()这是各种...
您的示例失败,因为您没有启动事件循环。有几种方法可以做到这一点,最简单的方法是: