繁体   English   中英

如何在 Python 中制作非阻塞计时器

[英]How to make Non-blocking timer in Python

我需要你的帮助。

我需要一个非阻塞的计时器,它允许我在它仍在计数的时间内完成其他任务。 我的机器人需要这个功能,显然我不想一直阻止它,我调用这种需要这些计时器的功能。

因此,过去我曾经在 Arduino (c++) 中使用相同配置中的函数 millis() 似乎无法正常工作

int t0 =0
int t1

void loop(){
t1= millis()
while (t1-t0 < 6000){
Serial.print(Timer!);
t0 = millis();}}

你对我有什么建议吗? 我可以从哪里开始的代码? 谢谢!

以下将打印"Timer" 6 秒:

import time

start_time = time.time() # returns number of seconds passed since epoch
current_time = time.time()

max_loop_time = 6 # 6 seconds

while (current_time - start_time) <= max_loop_time:
    # do stuff
    print("Timer")
    current_time = time.time()

好的,我自己找到了解决方案,试图记住我之前在 Arduino 上所做的事情。

我基于 Adam Minas 的答案,但我的完全不同

所以预期的行为必须是:每 5 秒打印一次(某事),所以:

import time

start_time = time.time() # returns number of seconds passed since epoch
#current_time = time.time()
print(start_time)
max_loop_time = 20 # 6 seconds

while True:

    while (time.time() - start_time) > max_loop_time:
    
            print("Timer")
            start_time = time.time()

然后你可以用 break 和其他函数来停止你的 while 循环

if == smth : 
    break

    

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM