为防止定时器的漂移导致睡眠时间不准确,可以结合系统时间和定时器实现更精确的睡眠函数。以下是一个示例:
import time
def sleep(seconds):
start_time = time.time()
elapsed_time = 0
while elapsed_time < seconds:
time.sleep(0.1) # 定时器以0.1秒为单位
elapsed_time = time.time() - start_time
在此示例中,使用time库中的time()函数获取当前时间,并与开始时间相比较以确定经过的时间。每次循环,函数会休眠0.1秒,以允许其他任务运行。这种方法可以确保睡眠时间准确,同时避免挂起UI。