如何在 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
我需要你的帮助。
我需要一个非阻塞计时器,它允许我在它仍在计数的时间段内执行其他任务。 我的机器人需要这个功能,显然我不想在调用需要这些计时器的这种类型的功能时一直阻止它。
所以,过去我曾经在 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