线程化Tk GUI和cpu密集型数学方程

时间:2015-11-27 05:12:33

标签: python tkinter

基本上我正在尝试将线程与Tk GUI结合使用,到目前为止,我一直遇到GUI冻结问题,因为cpu密集型任务似乎会使GUI过载。我很擅长线程,并且在尝试同时工作时遇到很多问题。

所以在后台运行一个cpu密集型数学方程,在前台,弹出一个GUI,其中有一个按钮,允许用户将数据输入到数组中以供日后使用,我希望这两个进程都可以同时去。有什么建议吗?

from tkinter import *
import threading
import math

class App(Tk):
    def __init__(self):
        Tk.__init__(self)
        self.addWidgets()

    def addWidgets(self):
        self.wordEntry = Entry(self, width = 16)
        self.wordEntry.grid(row = 2, column = 1)
        self.wordEntry.insert(END, "Enter")

        self.addBtn = Button(self, text = "Add", width = 16, command = self.add)
        self.addBtn.grid(row = 2, column = 2)

    def add(self):
        global wordList
        wordList.append(self.wordEntry.get())
        print(wordList)

def startThreads():
    t1 = threading.Thread(target=mathFUNC1, args = (100000,))
    t1.start()

def mathFUNC1():
    #This is what the math function would be essentially

def mathFUN2():
    #This would be called by mathFUNC1

def main():
    startThreads()
    app = App()
    app.wm_title("GUI")

if __name__ == "__main__":
    main()

所以希望有一种方法可以运行数学函数,但也允许App类不冻结并被前台用户使用。

0 个答案:

没有答案
相关问题