У меня есть функция c с использованием многопроцессорного пула с 12 процессами, и эта функция вызывается кнопкой в GUI. Эта функция относится к другому модулю GUI, и я не могу использовать охрану, если name == ' main ': потому что в другом модуле условие имеет значение False. По этой причине при вызове функции другое 12 GUI всплывающее окно и я не знаю, как это исправить. Вот пример кода, два фрагмента находятся в разных файлах:
ФАЙЛ 1
import multiprocessing
from tkinter import *
from tkinter import filedialog
class Example:
@staticmethod
def write(s):
print(s)
@staticmethod
def computeExamples():
pool = multiprocessing.Pool(12)
input=[["Hi"],["Hi"],["Hi"],["Hi"],["Hi"]]
results= pool.starmap(Example.write,input)
ФАЙЛ 2
from Example import *
def compute():
#if __name__ == '__main__':
Example.computeExamples()
window = Tk()
frame = Frame(master = window)
frame.grid(row=0,column=0)
button2 = Button(master=frame,text="Start", command=compute)
button2.pack()
window.mainloop()
Теперь, если я поставлю охрану в compute, когда я нажимаю start, появляется много всплывающих окон, вместо этого, если я помещаю охрану в computeExamples, ничего не происходит, потому что guard - False.