Странное поведение tkinter при использовании нескольких потоков - PullRequest
0 голосов
/ 25 апреля 2020

Когда новый поток уничтожает объект Tkinter Tk, mainl oop которого находится в основном потоке, новый поток, кажется, застревает и никогда не продолжается или не завершается. Почему это происходит? Приведенный ниже код показывает пример того, что я имею в виду:

from tkinter import *
from threading import *
import time

win = Tk()


def exit_after_time():
    time.sleep(2)
    win.destroy()


thread = Thread(target=exit_after_time)
thread.start()

win.mainloop()
print("mainloop quit")
thread.join()
print("thread joined")

При запуске mainl oop завершается через 2 секунды, но поток никогда не присоединяется. Сейчас я просто работаю над этим, сделав нить демоном и не дожидаясь его окончания sh, но я бы хотел знать, что на самом деле происходит.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...