后台任务不会在 Pi 上运行,但在 Windows 上运行

问题描述 投票:0回答:1

我已经编写了一个程序,它在 python 中设置了一个守护进程,以在后台对一些在主任务中被询问的计时器进行倒计时,它在 windows 下工作正常,但在 Pi 的实际所需目标上却没有。

我有强制进口:

from threading import Thread
import time

然后声明后台函数:

# Background Function called every 100ms to decrement button delay timers
def timer():
    while True:
        time.sleep(100/1000)

        for i in range (No_Of_Buttons):
            if(ButtonDelay[i] > 0):
                ButtonDelay[i] = ButtonDelay[i] - 1

然后在后初始化阶段我有:

daemon = Thread(target=timer, daemon=True, name='timer')
daemon.start()

然后主程序将延迟值设置为零以外的值,这样做可以防止其他事情发生。

这一切在我的 PC 上运行良好,但在 Pi 上失败。

我在守护进程中放置了一个 print('Tick') 语句,在 Windows 下它每 100 毫秒左右打印一次“tick”。 在 Pi 上我什么也得不到,如果 ButtonDelay[x] 值没有随时间归零,程序行为就像我期望的那样。

在主程序中,如果按下按钮

    while(ButtonDelay[bcode] > 0):
        continue
   # Now do button stuff

所以我希望它会延迟按钮的其余部分执行,直到关联的 ButtonDelay[] 为 0

我在这里错过了什么?

background daemon
1个回答
0
投票

好的,所以我发现了为什么这行不通。我在整理如何做时运行了一个有缺陷的早期版本的代码,但它并没有完全关闭。

一双全新的靴子,效果很好。

我把这个留在这里,希望有人能受益。

© www.soinside.com 2019 - 2024. All rights reserved.