python:tkinter/asycnio异步增加协程

import tkinter as tk
import asyncio as ay


def runtask(L):
    U=[]
    for i in L:
        U.append(ay.ensure_future(i))
    ay.get_event_loop().run_until_complete(ay.wait(U))



async def f1(n):
    for i in range(5):
        await ay.sleep(1)
        print(f'任务{n}: {5-i}')


app=tk.Tk()
app.title('动态增加异步任务')
app.geometry('500x500')
N=0

def add():
    global N
    N+=1
    ay.gather(ay.ensure_future(f1(N)))

bt=tk.Button(app,text='增加任务',command=add)
bt.pack()

ALIVE=True

def close():
    global ALIVE
    ALIVE=False

app.protocol('WM_DELETE_WINDOW',close)

async def main():
    while ALIVE:
        app.update()
        await ay.sleep(0)




ay.get_event_loop().run_until_complete(ay.ensure_future(main()))

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值