Как запустить окно tkinter параллельно с другими процессами? - PullRequest
0 голосов
/ 07 мая 2020

У меня есть приложение tkinter, которое контролирует, а также импортирует значения из последовательного соединения. Мне нужны два цикла, которые выполняются независимо: один для последовательного соединения и один для основного приложения tkinter. в python, но приложение tkinter работало очень медленно. мой код выглядел примерно так.

import tkinter as tk
from threading import Thread

class Tkinter_Window(Thread):

    def __init__(self):
        Thread.__init__(self)
        self.daemon = True
        self.start()

    def run(self):
        self.tkinter_window = tk.Tk()
        self.tkinter_window.mainloop()

class Serial_Connection(Thread):

    def __init__(self):
        Thread.__init__(self)
        self.daemon = True
        self.start()

    def run(self):
        #serial connection should go here#
        pass

class Some_Other_Process(Thread):

    def __init__(self):
        Thread.__init__(self)
        self.daemon = True
        self.start()

    def run(self):
        #any other needed processes#
        pass


if __name__ == "__main__":
    Tkinter_Window()
    Serial_Connection()
    Some_Other_Process()
    while True:
        pass

однако приложение tkinter было слишком медленным. после поиска причины я прочитал, что многопроцессорность может работать лучше в моем случае. Я ценю любые мнения о том, как запускать параллельные процессы, имея при этом возможность оптимизировать их вычислительную мощность.

Я также пробовал многопроцессорность https://docs.python.org/2/library/multiprocessing.html, но я не мог понять, как это сделать запустите l oop основного приложения tkinter.

1 Ответ

1 голос
/ 07 мая 2020

Вы можете попробовать сделать что-то вроде регулярного использования tkinter_window.update() в основном коде вместо mainl oop. Надеюсь, это поможет!

...