
个人觉得,缺点是工作效率低,浪费资源!
-
举例,你早上7点半起床,你自己都调好闹钟了!还有必要自己亲自去一秒一秒的数吗!
假设现在离你起床还有10小时,折算下来是36000秒-
你觉得用钟表定时闹钟好呢?还是自己一秒一秒的数,一直数够36000秒?
-
答案 当然是用钟表定时闹钟好咯,没必要自己那么累一秒一秒的去数,而且自己还要睡觉,吃夜宵,冲凉等等,哪里有空去专门数那36000秒哦!
-
延时程序就是让CPU单片机的大脑专门去傻傻的数!而定时器就是帮你定时闹钟的一个表!
-
在单片机里,CPU是有很多重要的事等它去做的,比如(洗澡,吃宵夜,约会,睡觉等等),而你却让CPU专门为你数时间,所以浪费大脑资源咯!
-
Python中的sleep函数可以传小数进去,然后就可以进行毫秒级的延时了。
代码如下:
import time
i = 1
while i = 3:
print(i) # 输出i
i += 1
time.sleep(1) # 休眠1秒
例1:循环输出休眠100毫秒
import time
i = 1
while i = 3:
print(i) # 输出i
i += 1
time.sleep(0.1) # 休眠0.1秒
扩展资料
python中 time.sleep()用法:
sleep() 方法暂停给定秒数后执行程序。该参数可以是一个浮点数来表示一个更精确的睡眠时间。
实际中止时间可能不到所请求的,因为任何捕获信号将终止 sleep()接下来执行该信号捕捉的程序。
以下是sleep()方法的语法:
time.sleep(t)
参数 t – 这是要暂停执行的秒数。 返回值:此方法不返回任何值。
你的意思是说为什么delay的时间并不是你传进去的mis。原因应该是如下:你循环体本身执行的时候就是要时间的。比如
mis 传进来是 2000
忽略到GetCurrentTime等的执行时间
COleDateTime start_time = COleDateTime::GetCurrentTime()
COleDateTimeSpan end_time = COleDateTime::GetCurrentTime() - start_time
while(end_time.GetTotalSeconds() <= (mis/1000)) end_time为0
{
MSG msg
GetMessage(&msg,NULL,0,0) 假设执行时间 100ms
TranslateMessage(&msg) 假设执行时间100ms
DispatchMessage(&msg) 假设执行时间是3000ms
end_time = COleDateTime::GetCurrentTime() - start_time此时end_time就为3200ms
}
所以此时就是一个等待时间久违3200ms,四舍五入的话3seconds
这样就跟你传入的参数2秒不对了。。
关键你是要考虑一些函数的执行时间,同时DispatchMessage是一个同步函数。当前GetMessage得到一个WM_TIMER消息,而窗口处理函数在处理onTimer的时候sleep了5秒,那么这个函数要等5秒才返回。所以你这个delay函数时间肯定是不精确的。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)