设置延迟';在'之后;python tkinter中的函数

设置延迟';在'之后;python tkinter中的函数,python,events,tkinter,Python,Events,Tkinter,我正在使用tkinter用python编写一个简短的应用程序。除了意外的暂停外,所有功能都正常工作-它应该每秒生成两次事件,但在信号之间通常会暂停5或6秒。我已经把打印语句放在了查找延迟的地方,发现它是以下语句: self.frame.after(ms,self.tick_处理程序) 毫秒是500,因此这应该在大约0.5秒时发送事件。通常是这样,但在tick_handler()获取信号之前,它通常会挂起5或6秒。该程序非常简单,一个工作线程接收来自单个队列的所有输入,事件来自单个tkinter帧

我正在使用tkinter用python编写一个简短的应用程序。除了意外的暂停外,所有功能都正常工作-它应该每秒生成两次事件,但在信号之间通常会暂停5或6秒。我已经把打印语句放在了查找延迟的地方,发现它是以下语句:

self.frame.after(ms,self.tick_处理程序)

毫秒是500,因此这应该在大约0.5秒时发送事件。通常是这样,但在tick_handler()获取信号之前,它通常会挂起5或6秒。该程序非常简单,一个工作线程接收来自单个队列的所有输入,事件来自单个tkinter帧。
after()
语句位于辅助线程中。我尝试过关闭gc(
gc.disable()
),但没有任何区别。在我的计算机上,除此之外,几乎没有其他活动

如果我在暂停期间使用鼠标或按键发送其他输入,它会立即被处理,因此工作线程不会被阻塞。看起来好像收到了信号请求,但有一段时间没有触发。我知道我不能期望实时性能,所以。6秒不值得注意,但6.0秒


这是我第一次和tkinter合作。关于事件处理,我有什么遗漏吗?

我认为您没有在末尾包含
tkinter.mainloop()


PS:我不确定…

我想你没有在最后包括
tkinter.mainloop()


PS:我不确定…

对不起,不是这样,代码运行正常,只是有延迟。我知道如果我能做一个简短的示例并包含一个完整的程序会更好,但我尝试的简短测试程序没有问题。谢谢,但包含起来有点长,我仍然看到了行为,但在一些不相关的更改后,它会稍微好一点(3-4秒,而不是5-6秒)。这个程序(多板俄罗斯方块)只是我自己的指令。如果这是一个我很想知道的已知问题,否则我会把它记在经验上,然后继续前进。有时这也会发生在我身上。。。我认为通过小部件
tkinter.Button[“command”]
调用它会很有趣。我将查看是否可以从按钮内调用,尽管目前逻辑已在工作线程中完成。我发现严重性似乎随着组织的变化而变化。此外,当我使用多个板(工作线程)运行时,每个板都设置了after delay,它工作得更好。运行2个线程3分钟,我只看到2次3秒的延迟,运行一块单板的延迟将是原来的10倍。对不起,不是这样,代码运行正常,只是延迟而已。我知道如果我能做一个简短的示例并包含一个完整的程序会更好,但我尝试的简短测试程序没有问题。谢谢,但包含起来有点长,我仍然看到了行为,但在一些不相关的更改后,它会稍微好一点(3-4秒,而不是5-6秒)。这个程序(多板俄罗斯方块)只是我自己的指令。如果这是一个我很想知道的已知问题,否则我会把它记在经验上,然后继续前进。有时这也会发生在我身上。。。我认为通过小部件
tkinter.Button[“command”]
调用它会很有趣。我将查看是否可以从按钮内调用,尽管目前逻辑已在工作线程中完成。我发现严重性似乎随着组织的变化而变化。此外,当我使用多个板(工作线程)运行时,每个板都设置了after delay,它工作得更好。运行2个线程3分钟,我只看到2次3秒的延迟,运行一块单板会有10倍的延迟。