asyncio.Event在信号处理程序中未被设置
创始人
2024-09-21 05:00:55
0

在实现信号处理程序的函数中,不能直接设置 asyncio.Event 实例的状态,必须通过调用 asyncio.ensure_future() 来执行协程,并在协程中设置 Event 的状态。以下是一个示例:

import asyncio
import signal

loop = asyncio.get_event_loop()
evt = asyncio.Event()

async def do_work():
    print("Starting work ...")
    await asyncio.sleep(3)
    print("Work finished.")
    evt.set()

async def signal_handler():
    print("Received signal, stopping tasks ...")
    task = asyncio.ensure_future(do_work())
    await evt.wait()
    task.cancel()
    print("All tasks stopped.")
    loop.stop()

async def main():
    # Register the signal handler
    loop.add_signal_handler(signal.SIGINT, lambda: asyncio.ensure_future(signal_handler()))

    # Start main work
    await asyncio.gather(do_work())

if __name__ == "__main__":
    loop.run_until_complete(main())

在上面的示例中,signal_handler() 函数是信号处理程序,它会调用 asyncio.ensure_future() 来启动协程 do_work(),并在协程中设置 Event 的状态。当 Event 的状态被设置后,signal_handler() 会取消任务并关闭事件循环。

相关内容

热门资讯

透视美元局!wpk透视是真的吗... 透视美元局!wpk透视是真的吗,wpk透视辅助方法,力荐教程(有挂脚本);亲,关键说明,wpk透视是...
透视免费!wpk软件是真的吗,... 透视免费!wpk软件是真的吗,wpk私人局有透视吗,存在挂教程(有挂解密)1、不需要AI权限,帮助你...
透视好友!wpk透视辅助,wp... 透视好友!wpk透视辅助,wpk模拟器多开,安装教程(有挂规律)所有人都在同一条线上,像星星一样排成...
透视肯定!wpk软件是正规的吗... 透视肯定!wpk软件是正规的吗,wpk俱乐部辅助器,技巧教程(有挂详情)亲,关键说明,wpk软件是正...
透视系统!wpk透视怎么安装,... 透视系统!wpk透视怎么安装,wpk刷入池率脚本,透明挂教程(有挂插件);1、玩家可以在wpk刷入池...
透视软件!wpk显示有作弊,w... 透视软件!wpk显示有作弊,wpk透视辅助方法,详细教程(有挂细节)进入游戏-大厅左侧-新手福利-激...
透视脚本!wpk透视怎么安装,... 透视脚本!wpk透视怎么安装,wpk模拟器,总结教程(有挂攻略)1、操作简单,无需注册,只需要使用手...
透视规律!wpk作弊,如何下载... 透视规律!wpk作弊,如何下载wpk透视版,技巧教程(有挂解密)进入游戏-大厅左侧-新手福利-激活码...
透视ai!有哪些免费的wpk作... 透视ai!有哪些免费的wpk作弊码,wpk私人局有透视吗,必赢方法(有挂方法)一、有哪些免费的wpk...
透视能赢!wpk俱乐部是做什么... 透视能赢!wpk俱乐部是做什么的,wpk辅助器是真的吗,2025版教程(有挂介绍)1、玩家可以在wp...