马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
async def my_event_handler(event):
global t_result
global stop_condition
stop_condition = True
ply = event.text
t_result={as:ply}
await client.disconnect()
return stop_condition,t_result
async def timer():
# 计时器代码
global t_result
global stop_condition
time.sleep(5)
stop_condition = False
print("timer Exception")
client.disconnect()
t_result={as:"超时,请稍后重试!"}
return stop_condition,t_result
with client:
client.run_until_disconnected()
return stop_condition,t_result
想加个async 同步计时, 超过5秒程序就直接返回超时,但现在加了async def timer(): 没效果,请大佬帮看下,感谢!
根据你提供的代码,`timer()`函数似乎并没有被调用。为了使用异步计时器,你可以使用`asyncio.sleep()`函数。这里是一个可能会起作用的修改版本:
import asyncio
async def my_event_handler(event):
global t_result
global stop_condition
stop_condition = True
ply = event.text
t_result={as:ply}
await client.disconnect()
return stop_condition, t_result
async def timer():
# 计时器代码
global t_result
global stop_condition
await asyncio.sleep(5) # 使用asyncio.sleep()实现计时
stop_condition = False
print("timer Exception")
await client.disconnect()
t_result={as:"超时,请稍后重试!"}
return stop_condition,t_result
with client:
asyncio.ensure_future(timer()) # 启动计时器的运行
client.run_until_disconnected()
return stop_condition,t_result
在上面的代码中,将计时器函数与事件处理程序串联起来,然后通过`asyncio.ensure_future()`函数启动计时器。这应该会在事件处理程序与计时器之间创建一个协程链,使其同时运行,并且在事件处理程序返回结果或者计时器完成时结束。
有用请设置最佳答案
|