相关疑难解决方法(0)

tkinter 的“after”方法是线程安全的吗?

由于 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()
Run Code Online (Sandbox Code Playgroud)

因此,我们不是root.title('foo')直接在worker线程中执行,而是将其排队root.after并让主线程执行它。但打电话不就root.after和打电话一样糟糕吗root.titleroot.after线程安全吗?

python multithreading tkinter thread-safety

6
推荐指数
1
解决办法
1400
查看次数

标签 统计

multithreading ×1

python ×1

thread-safety ×1

tkinter ×1