我每隔n分钟执行一些代码并更新一些值。我用条件检查这些值,如果需要,我调用一个使LED闪烁的循环。该循环函数如下所示:
def blink_led_constant
while 1
# RPi::GPIO.set_high 18
# sleep(1)
# RPi::GPIO.set_low 18
# sleep(1)
end
end
基本上我希望此LED在后台闪烁,直到满足某个条件。如何将其设置为运行功能,还要继续通过函数调用以重复我的程序?
现在根据我的写法,如果调用此函数,它会无限期地陷入困境。
由于
答案 0 :(得分:3)
您可以使用线程执行此操作。
def blink_led_constant
loop do
# RPi::GPIO.set_high 18
# sleep(1)
# RPi::GPIO.set_low 18
# sleep(1)
end
end
thread = Thread.new { blink_led_constant }
然后您可以在blink_led_constant
在后台运行时执行其他命令。如果您希望在条件满足后将其中断,请将loop do
更改为while
。满足条件后,可以通过闪烁来电Thread.kill(thread)
或thread.kill
停止指示灯。