Ниже приведен сценарий, с которым я имею дело:
Есть основной процесс, который запускает рабочий процесс с помощью Multiprocessing.Process. Рабочий процесс создает окно tkinter для рендеринга. Если я хочу прекратить рендеринг, я просто выполняю process.terminate (). Хотя это работает программно, я вижу некоторые артефакты на экране, потому что разрушение окна не выполняется должным образом. Мой план состоит в том, чтобы поделиться объектом tkinter с основным процессом, тем самым дав ему возможность отозвать, а затем уничтожить окно.
Я пробовал Multiprocessing.Queue, Multiprocessing.Manager, но ничего не работает из-за следующей ошибки:
TypeError: can't pickle _tkinter.tkapp objects
Я думаю, что мои предположения ошибочны. Какая методика программирования на Python подходит для этого?






Вы не можете совместно использовать объекты tkinter между процессами. Виджеты Tkinter зависят от встроенного интерпретатора tcl, и этот встроенный интерпретатор не может использоваться совместно между потоками или процессами.