【发布时间】:2020-08-18 15:52:06
【问题描述】:
我正在学习创建一个 gui 来启动多处理打印。 当我单击开始按钮时,它会再次绘制 gui。有没有限制它只运行多处理打印?
创建了 gui.py:
def stopstart():
global instance
if startbtn['text']=="start":
# Multiprocessing start here
RunMultiProcessor()
# End of Multiprocessing
startbtn.configure(text="END")
startbtn.configure(bg="#ff8a65")
else:
popuptimer()
else:
startbtn.configure(text="start")
startbtn.configure(bg="#e2f1f8")
startbtn = Button(leftframe, text = "start",
background = "#e2f1f8", fg = "#000000",bd=1,command = stopstart)
startbtn.pack(side = TOP,expand = FALSE,fill = X)
创建了 multiprocessing.py :
def run():
print("printing")
time.sleep(2)
print("print end")
def RunMultiProcessor():
for _ in range(2):
processes[i] = multiprocessing.Process(target=run,))
processes[i].start()
【问题讨论】:
-
阅读documentation,尤其是“安全导入主模块”部分。新进程再次导入您的 Python 脚本,因此应该只运行一次的代码必须受
if __name__ == '__main__':保护。您还没有创建minimal reproducible example,但我猜它没有得到适当的保护。
标签: python-3.x tkinter python-multiprocessing