使用多线程解决tkinter运行耗时函数时假死冻结问题

最后修改时间:2021/8/4 12:49:28

import tkinter, threading, time

def work():
    print(time.ctime())
    time.sleep(5)
    print(time.ctime())
    t.insert('end', time.ctime()+'\n')

def test():
    threading.Thread(target=work).start()

if __name__ == "__main__":
    root = tkinter.Tk()
    root.geometry('300x200')
    tkinter.Button(root, text='  运行  'command=test).pack()
    t = tkinter.Text(root, height=10)
    t.pack()
    root.mainloop()

线程安全?我又不懂线程安全是什么意思……
似乎使用asyncio包也能解决这个问题的。