Asyncio,asyncio.sleep(5) 在 5 秒后发送每个变量,而不是一个接一个地发送
Asyncio, asyncio.sleep(5) sends every variable after 5 sec and not one after the other
asyncio.sleep()函数有没有解决办法。我将多个命令作为“命令”发送到函数“async def send”,它应该一个接一个地发送。它只发送一个,5 秒后发送其余的。
编辑:
async def send(self, command, count):
for x in range(count):
await self.ws.send(command)
lb1.insert(END, command)
await asyncio.sleep(5)
这是我传递值的函数:
def sending():
command = entry.get("1.0", 'end-1c')
p = command.split('@')
count = 0
for x in p:
print(f'Sent -> {x}')
asyncio.ensure_future(echo.send(x, count))
count+=1
btn2.config(command=sending)
我期待:
例如:4 个输入命令,第一个被发送,延迟开始 5 秒,第二个应该被发送 -> 延迟 5 秒 -> ...
最终编辑:
async def send(self, command):
p = command.split('@')
for x in p:
await self.ws.send(x)
lb1.insert(END, x)
await asyncio.sleep(5)
现在可以了:)我发现了我的错误
def sending():
command = entry.get("1.0", 'end-1c')
print(f'Sent -> {command}')
asyncio.ensure_future(echo.send(command))
您是否打算:
async def send(self, command, count):
for i in range(count):
await self.ws.send(command)
lb1.insert(END, command)
await asyncio.sleep(5)
但是,使用 insert
让我觉得这是一个 tkinter 应用程序。如果那是正确的,那么这是错误的方法。在此函数 returns 并返回主循环之前,不会更新任何内容。您主要需要改用 tk.after
。
asyncio.sleep()函数有没有解决办法。我将多个命令作为“命令”发送到函数“async def send”,它应该一个接一个地发送。它只发送一个,5 秒后发送其余的。
编辑:
async def send(self, command, count):
for x in range(count):
await self.ws.send(command)
lb1.insert(END, command)
await asyncio.sleep(5)
这是我传递值的函数:
def sending():
command = entry.get("1.0", 'end-1c')
p = command.split('@')
count = 0
for x in p:
print(f'Sent -> {x}')
asyncio.ensure_future(echo.send(x, count))
count+=1
btn2.config(command=sending)
我期待: 例如:4 个输入命令,第一个被发送,延迟开始 5 秒,第二个应该被发送 -> 延迟 5 秒 -> ...
最终编辑:
async def send(self, command):
p = command.split('@')
for x in p:
await self.ws.send(x)
lb1.insert(END, x)
await asyncio.sleep(5)
现在可以了:)我发现了我的错误
def sending():
command = entry.get("1.0", 'end-1c')
print(f'Sent -> {command}')
asyncio.ensure_future(echo.send(command))
您是否打算:
async def send(self, command, count):
for i in range(count):
await self.ws.send(command)
lb1.insert(END, command)
await asyncio.sleep(5)
但是,使用 insert
让我觉得这是一个 tkinter 应用程序。如果那是正确的,那么这是错误的方法。在此函数 returns 并返回主循环之前,不会更新任何内容。您主要需要改用 tk.after
。