Python,使用Tkinter进行线程化

时间:2017-08-15 17:47:54

标签: python multithreading tkinter

所以我对我正在做的程序非常深入,并且我意识到我的程序,我认为我需要以某种方式实现线程以阻止它锁定。

我的程序使用Tkinter作为它的GUI,当程序启动时,我有一个每秒运行一次的进程使用Tkinter的after()函数。有问题的方法读取数据并将其附加到固定长度deque()。在我的程序的其他部分,我有方法读取最后一个附加值,并处理它。

我的问题是一个简单的循环,如下所示:

value = valDeque.getLastAppendedValue()
while value != "this specific value":
    value = valDeque.getLastAppendedValue()

当while循环之前的初始变量调用将value设置为我正在寻找的特定值以外的程序时,程序进入无限循环,似乎其他一切都停止运行。

我假设这是因为while循环继续执行而我的after()函数将附加我正在寻找的值,它正处于等待轮到执行的状态。这就是为什么我认为我需要使用线程,因为我可以设置我的更新/追加功能来分开运行其余的进程,所以我没有这个错误。

话虽如此,我对Python并不熟悉,也不知道如何将线程与Tkinter after()函数集成,因为我知道Tkinter的mainloop()不会与{ {1}}。

我曾尝试在网上寻找一些可以取得一些进展的例子,但我无法做出正面或反面或我所发现的内容。

0 个答案:

没有答案