【发布时间】:2021-12-19 11:55:17
【问题描述】:
在这里,我使用多处理在 tkinter 中运行多种算法。起初我尝试使用线程,但它无法在我的程序中正常工作。下面是我的程序工作流程的一个想法,它的工作原理是这样的,但功能不同:
from tkinter import *
from multiprocessing import Process
def SquarFunc(Square):
for i in range(1,1000):
Square.set(str(i**2))
def CubeFunc(Cube):
for i in range(1,1000):
Cube.set(str(i**3))
if __name__ == "__main__":
window= Tk()
Square= StringVar()
Cube= StringVar()
window.geometry("500x500")
A= Label(window, textvariable= Square)
A.place(x=200, y=200)
B= Label(window, textvariable= Cube)
B.place(x=300, y=300)
Squaring= Process(target=SquarFunc, args=(Square, ))
Cubing= Process(target=CubeFunc, args=(Cube, ))
Squaring.start()#Error originates here
Cubing.start()
Squaring.join()
Cubing.join()
window.mainloop()
产生的错误是这样的:
TypeError: cannot pickle '_tkinter.tkapp' object
有人知道如何解决这个问题吗?提前致谢!
【问题讨论】:
-
这个答案是否涵盖了您需要的内容:stackoverflow.com/a/26835188/8382028 如果不是,您需要发布您的代码,而不仅仅是错误
-
@ViaTech 我已经阅读了那个链接..但我不太明白它的含义,而且它与我的程序有点不同..让我编辑我的帖子并输入代码..谢谢
-
@ViaTech 我已经发布了我的代码..你知道如何解决它吗?
-
提供minimal reproducible example而不是你的整个代码,无论如何,你不能在其他进程中使用
tkinter,因为它不可腌制 -
@Matiiss 好的....
标签: python tkinter multiprocessing