所以我对我正在做的程序非常深入,并且我意识到我的程序,我认为我需要以某种方式实现线程以阻止它锁定。
我的程序使用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}}。
我曾尝试在网上寻找一些可以取得一些进展的例子,但我无法做出正面或反面或我所发现的内容。