многопроцессорная функция в GUI - PullRequest
0 голосов
/ 15 апреля 2020

У меня есть функция 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.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...