Python/Tkinter:试图同时采样信号和运行计时器:程序冻结.为什么



如标题中所述,我正在尝试运行一个计时器,每秒更新一次,同时采样信号(用于Raspberry Pi(,目前在PC上模拟。

计时器的代码本身运行得很好,它来了:

def update_timer(self, nap = 1):
while (self.sw_seconds > 0):
self.sw_seconds -= nap
m, s = divmod(self.sw_seconds, 60)
self.labels["Timer"]['text'] = '%02d:%02d' % (int(m), int(s))
self.labels["Timer"].after(1000, self.update_timer)

现在,我用来同时运行的函数是:

def repeat_function(self,period,f,*args):
t = time.time()
while self.bool:
f(*args)
t += period
time.sleep(max(t - time.time(),0))

整个程序很长,在调用repeat_function之前已经测试过了,但如果需要,我可以在这里完全复制它。只是尽量简明扼要。

我已经通过启动定时器(它自己工作(和repeat_function(1.0,打印,"你好"(测试了这个配置。我的程序冻结了,每次我都必须终止它。

有人能告诉我";重复函数";?在现实生活中,它必须捕获频率至少为10 Hz的信号样本,所以我无法想象当它被要求每秒打印一份声明时,它已经冻结了,这是如何工作的

谢谢你,睡眠(让整个应用程序进入睡眠状态(是不适合这份工作的工具,使用线程可以很好地工作。

最新更新