python - 无论线程如何,tkinter 都会冻结
问题描述
我在 tkinter 顶层有一个按钮,它触发了一个在 4 核上利用多处理的功能。每当按下按钮时,顶层窗口都会冻结,我尝试在函数上应用线程,但它仍然冻结。
示例代码:
def single_func(....):
# something intensive
def some_func(....):
for i in something:
p = Process(target = single_func, args = (....))
p.start()
p.join()
def run_prog():
cancel.config(state = tk.DISABLED)
thr = threading.Thread(target = some_func, args = (......))
thr.start()
thr.join()
run = tk.Button(self.frame, text = "Yes", command = run_prog)
run.grid()
对此有何建议?我怀疑我需要定义 tkinter gui,并且必须明确声明该函数位于不同的线程上,但我什至不确定。
解决方案
推荐阅读
- android - 从字符串解析 JSON 对象
- django-forms - 如何从 Django 表单中获取图像值?
- javascript - Vuex Mutation 无法使用 localstorage 更新状态
- python - 在终端中执行时从另一个文件夹导入python文件时没有发现模块错误(命令提示符)
- javascript - 在搜索框中从外部 html 加载 li
- ios - 自动对焦后拍照 AVCapture
- javascript - 如何使用angular6根据id值在第一个数组对象中添加第二个数组对象?
- javascript - 无法从 API 请求打印数据
- javascript - 会话注销后如何登录而不会丢失表单数据
- xamarin - Xamarin Forms MVVM Pattern 放置重复 UI 代码的最佳位置