我怎么放一个 的 while True 强> 在 - 的里面 的 tkinter 强> 的 .mainloop() 强> 这让我可以不断检查那个插座的状态?
while True
tkinter
.mainloop()
不要使用显式设计这样的部分 的 while True 强> -loop,更好用 tkinter - 工具:问 的 .after() 强> 要在不迟于一定时间内重新提交呼叫(让其他事情同时发生,但具有合理的确定性,请求的呼叫仍将在“超过”指定的毫秒数之后激活)。
.after()
Tkinter
因此,如果有人保持有限状态自动机(游戏,或GUI前端)清洁精心制作 Tkinter -grounds,人们可以享受提供ZeroMQ消息的数据,这些数据在场景后面“协调” Tkinter - 初级工具,因此不需要任何命令式代码。只需将消息翻译成 的 tkinter 强> - 监控变量,如果您需要确实具有智能工作的GUI集成。
aScheduledTaskID = aGuiRelatedOBJECT.after( msecs_to_wait, aFunc_to_call = None, *args ) # -> <_ID_#_> # ... guarantees a given wait-time + just a one, soloist-call # after a delay of at least delay_ms milliseconds. # There is no upper limit to how long it will actually take, but # your callback-FUN will be called NO SOONER than you requested, # and it will be called only once. # aFunc_to_call() may "renew" with .after() # # .after_cancel( aScheduledTaskID ) # <- <id> CANCELLED from SCHEDULER # # .after_idle() ~ SCHEDULE A TASK TO BE CALLED UPON .mainloop() TURNED-IDLE # # aScheduledTaskOnIdleID = aGuiOBJECT.after_idle( aFunc_to_call = None, # *args # ) # -> <_ID_#_>
使用准备重用很酷 的 tkinter 强> 本机基础架构调度工具以聪明的方式,不是吗?
( 的 闭塞 电话? 强> 最好永远不要使用阻塞呼叫。有没有人曾说过阻止这里的电话? 的 :o) 强> )
:o)
一个 的 while True 强> ,或阻止 的 socket.recv() 强> 内 tkinter 的 的 .mainloop() 强> 。
socket.recv()
好吧,人们可以将这样的循环放入与之对齐的组件中 的 tkinter 强> 原生基础设施调度程序,但这个想法实际上是一个反模式,可以把事情变成破坏性的破坏(不仅仅是 tkinter ,通常在任何事件循环处理程序中,期望任何“竞争性”事件处理程序循环以某种方式容忍或表现出相邻意图共存的和平行为是有点冒险的 - 会出现问题(来自直接阻塞)或者由于一个人在调度资源或其他类型的时间和资源战争中占据过多的优势))。