Tkinter y multi-threading

Estaba usando el siguiente código para examinar si Tkinter funciona junto con multithreading. Pero el siguiente código no funciona (la Gui deja de responder tan pronto como se ejecuta). ¿Alguien puede explicar por qué no funciona?

from threading import Thread import tkinter as tk window = tk.Tk() label = tk.Label(window, text='Hello') label.pack() def func(): i = 1 while True: label['text'] = str(i) i += 1 Thread(target=func).start() Thread(target=window.mainloop).start() 

No funciona porque Tkinter no admite subprocesos múltiples. Todo lo que interactúa con un widget Tkinter debe ejecutarse en el hilo principal. Si desea utilizar multihilo, coloque la GUI en el hilo principal y su otro código en un hilo trabajador, y comuníquese entre ellos con una cola segura de hilo.