Является ли метод tkinter `after` потокобезопасным? - PullRequest
2 голосов
/ 26 сентября 2019

Поскольку tkinter не ориентирован на многопотоковое исполнение, я часто вижу, как люди используют метод after, чтобы поставить в очередь некоторый код для выполнения в главном потоке.Вот пример:

import tkinter as tk
from threading import Thread

def change_title():
    root.after(0, root.title, 'foo')

root = tk.Tk()
Thread(name='worker', target=change_title).start()
root.mainloop()

Таким образом, вместо выполнения root.title('foo') непосредственно в потоке worker, мы ставим его в очередь с root.after и позволяем основному потоку выполнить его.Но разве звонить root.after не так плохо, как звонить root.title?root.after потокобезопасен?

...