如何让C语言sleep()函数等待时间小于1秒

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何让C语言sleep()函数等待时间小于1秒相关的知识,希望对你有一定的参考价值。

急用!
我是要0.01s执行一次,按理说编程是sleep(10),但为什么不能执。
我的程序是运用c编,sleep 和delay都试过了,但还是不行。

sleep()函数大概只能精确到50ms左右,你用sleep(10)是肯定不行的,如果你要精确的定时的话可以使用QueryPerformanceFrequency()函数,用法为:
LARGE_INTEGER litmp;
LONGLONG QPart1,QPart2;
double dfMinus, dfFreq, dfTim;
QueryPerformanceFrequency(&litmp);
dfFreq = (double)litmp.QuadPart;// 获得计数器的时钟频率
QueryPerformanceCounter(&litmp);
QPart1 = litmp.QuadPart;// 获得初始值
do

QueryPerformanceCounter(&litmp);
QPart2 = litmp.QuadPart;//获得中止值
dfMinus = (double)(QPart2-QPart1);
dfTim = dfMinus / dfFreq;// 获得对应的时间值,单位为秒
while(dfTim<0.001);
其定时误差不超过1微秒,精度与CPU等机器配置有关。

×××××××××××××××××××××××××

sleep()函数的中等待时间是以毫秒计算的,所以等待1秒就是sleep(1000),如果要让等待时间小于一秒,那么就让传入的参数小于1000就行了.
比如,等待0.1秒:
sleep(100);

参考资料:http://hi.baidu.com/daihaipengdhp/blog/item/16dbf417bdcc710cc83d6d31.html

参考技术A 如果对时间要求非常精确,可以考虑采用和汇编中处理的情况,看看cpu的频率,将for命令分解成汇编语言,看多少毫秒执行一次命令,然后设置循环次数,这样足够精确,实际上在汇编下也是这么做的。 参考技术B 用delay会使进程独占cpu,一般最好不要用,可以用usleep(),单位微妙 休眠10毫秒就是usleep(1000*10) 参考技术C TC中sleep()函数原型为: unsigned sleep(unsigned seconds); 参数单位为秒
delay()函数原型为: unsigned sleep(unsigned seconds); 参数单位为毫秒
函数sleep()确实会暂停x秒,但delay()多数情况下不精确,可以不断修正设置的数值,来达到控制时间的目的。
参考技术D #include <unistd.h> // 头文件
int usleep(useconds_t usec); // 函数原型
usec -- 毫秒。整数。最大允许值:小于 1000000
返回 0 -- 表示调用执行成功,1 -- 失败。

如何让 Dart 程序“休眠”1.6 秒

【中文标题】如何让 Dart 程序“休眠”1.6 秒【英文标题】:How can i "sleep" a Dart Porgram for 1.6 seconds 【发布时间】:2021-06-21 04:16:22 【问题描述】:

是否可以在 Dart 中指定一个 double 值作为睡眠值?例如:sleep(Duration(seconds: 1.6));

【问题讨论】:

你不应该在 Dart 中使用sleep。改用Timer:api.dart.dev/stable/2.12.2/dart-async/Timer/Timer.html 这能回答你的问题吗? How to run code after some delay in Flutter? Duration 仅将整数作为值。您可以使用毫秒或组合秒 + 毫秒 【参考方案1】:

既可以使用 Timer 类,也可以使用 Future.delayed() 方法来做同样的事情。

以下是 Future.delayed 方法的示例:

Future.delayed(const Duration(seconds: 1,milliseconds: 600), () 

// Here you can write your code


);

【讨论】:

【参考方案2】:

Duration 构造函数有许多可选参数。您可以使用毫秒一来获得 1.6 秒的延迟

const Duration(milliseconds: 1600)

【讨论】:

我实际上是用毫秒完成的,然后感谢您的回答:D @Janis 不客气!然后您可以将此帖子标记为答案;)

以上是关于如何让C语言sleep()函数等待时间小于1秒的主要内容,如果未能解决你的问题,请参考以下文章

如何让R执行暂停,休眠,等待X秒?

C语言怎么写延时函数,精确到毫秒

c语言Sleep()函数

C语言中sleep函数的原理是啥?

在c语言编程中,如果先执行一条语句,隔段时间,在执行下一条语言,该怎样实现呢?

sleep()函数怎么具体在c语言中怎么用?