Python 3.x 在循环中创建计时器会导致线程问题吗? 背景

Python 3.x 在循环中创建计时器会导致线程问题吗? 背景,python-3.x,multithreading,loops,timer,Python 3.x,Multithreading,Loops,Timer,我的应用程序有一个系统托盘图标 该应用程序通过在两种视觉状态之间快速切换使该图标闪烁:打开闪烁和关闭闪烁 闪烁必须是可中断的;当用户左键单击图标时,闪烁循环应中断并返回,且零延迟 实施 我使用一个事件门控while循环生成计时器: blink\u states\u iterator=iter([ (3.0,闪烁打开),(0.25,闪烁关闭), (0.25,闪烁打开),(0.25,闪烁关闭), (0.25,闪烁打开),(0.25,闪烁关闭), ]) 闪烁计时器=无 #设置事件标志时中断循环。 而不

我的应用程序有一个系统托盘图标

该应用程序通过在两种视觉状态之间快速切换使该图标闪烁:打开闪烁和关闭闪烁

闪烁必须是可中断的;当用户左键单击图标时,闪烁循环应中断并返回,且零延迟

实施 我使用一个事件门控while循环生成计时器:

blink\u states\u iterator=iter([
(3.0,闪烁打开),(0.25,闪烁关闭),
(0.25,闪烁打开),(0.25,闪烁关闭),
(0.25,闪烁打开),(0.25,闪烁关闭),
])
闪烁计时器=无
#设置事件标志时中断循环。
而不是停止闪烁。是否设置了()
#如果上一个计时器不再运行。。。
如果闪烁计时器为无或不闪烁计时器。闪烁计时器是否处于活动状态():
尝试:
直到下一个状态的时间,下一个闪烁状态=下一个(闪烁状态迭代器)
#每次迭代器耗尽状态列表时,重新启动迭代器。
除停止迭代外:
闪烁状态迭代器=iter(闪烁状态列表)
直到下一个状态的时间,下一个闪烁状态=下一个(闪烁状态迭代器)
#创建一个新的计时器,以在其间隔结束后执行闪烁状态更改。
闪烁计时器=线程。计时器(
间隔=直到下一个状态的时间,
函数=更改闪烁状态,参数=(下一个闪烁状态)
闪烁计时器。开始()
#否则,计时器仍在运行,此时不应执行任何操作。
其他:
#一个潜移默化的短延迟可以防止这个循环占用CPU。
睡眠时间(0.1)
#一旦退出循环,在执行之前立即停止计时器。
如果闪烁计时器:
闪烁计时器。取消()
结果 这段代码完成了它应该做的事情。然而,每个循环都会产生和终止一个全新的线程。此循环可能每秒发生4次,并且可能无限期地继续

问题
  • 在这样一个不确定的循环中产生和终止线程是否有任何负面后果
  • 如果是这样,有没有更好的方法来实现这种行为