前言
长话短说,看正文。
环境:
Windows 10 or 7
Python 3.6
正文
第一层,想到的和最常用的最原始的方法:
import time
time.sleep(0.001)
经过实测,并不准确,可能由于操作系统调度原因,此函数有延时到 15ms 左右的可能,对于时间敏感的人来说,不能使用此接口。
第二层,通过搜索,可能会用到第二种方法:
delay_mark = time.time()
while True:
offset = time.time() - delay_mark
if offset > 0.001:
break
同样,经过实测,有用,但是有点用。不同系统,不同环境,甚至不同时刻,最终延时也不是 1ms。我的环境中,需要延时10ms, 开另外一个无关的软件是正常的,但是不开另外的软件,则有时候会产生 20ms 延时。
所以,对延时超级敏感的,不建议用此API
第三层, 此 API 可以使用。
delay_mark = time.perf_counter()
offset = 0
while offset < 0.01:
offset = time.perf_counter() - delay_mark
原理就不讲了,总之就是有用。