CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
山寨机中的战斗机! 程序优化工程师到底对IT界有没有贡献
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  C/C++ >  C语言

在C/C++ 程序中怎样延时?

楼主yzfhappy(冷虎)2002-03-15 15:26:52 在 C/C++ / C语言 提问

在C/C++   程序中怎样使程序延时一段时间再操作?比如说延时1/100秒?  
  我以前用的是循环函数:  
  long   int   i;  
  for(i=6000000000;i>0;i--)  
  {  
        ;  
  }  
   
  虽然它可以延时,但是它的可移值性很差,在不同频率的CPU上延长的时间不同。  
  (C/C++中好象没有延时用的函数) 问题点数:30、回复次数:21Top

1 楼wsa_socket()回复于 2002-03-15 15:29:09 得分 5

delay可以吧Top

2 楼neptunez()回复于 2002-03-15 15:29:11 得分 5

tc   delay(10)  
  vc   Sleep(10)  
  ..Top

3 楼wsa_socket()回复于 2002-03-15 15:31:45 得分 0

参数单位好像是毫秒  
  记不清了Top

4 楼hncal(利剑)回复于 2002-03-15 15:33:42 得分 5

Sleep(1000)延时一秒Top

5 楼songhonda(小笨鼠)回复于 2002-03-15 15:56:54 得分 0

delay()和sleep()两个函数都可以起到延时的作用,自己查查这两个函数的具体用法Top

6 楼zsf345(飞舟)回复于 2002-03-15 16:13:21 得分 3

对就是用delay()函数,具体的自己去查。Top

7 楼gnuljf(柴门(也有人叫我废柴^_^))回复于 2002-03-15 16:32:21 得分 0

sleep()的单位是秒,而delay()的单位是秒。  
  在TC中,这两个函数都有。Top

8 楼gnuljf(柴门(也有人叫我废柴^_^))回复于 2002-03-15 16:36:01 得分 5

刚才有点错了,delay()的单位是毫秒,不是秒:)  
  sleep(1)延时1秒,delay(1000)延时1秒!!Top

9 楼cniou(混混)回复于 2002-03-15 17:30:14 得分 0

对不同的平台有不同的方法  
  WIN32提供sleep而且是ms级的  
  而UNIX则只用用alarm来实现ms级的延时了Top

10 楼allen7757(漫步VS新月)回复于 2002-03-15 17:51:53 得分 3

sleep()   是秒  
  delay()   是毫秒   具体的查一下c   函数   dos.h      
  Top

11 楼shuicai(水菜)回复于 2002-03-15 18:12:50 得分 2

好象都是毫秒吧。  
   
  但他们都不很准的。但精度要求不高的话,完全可以的了。  
   
  当然你也可以使用Timer控件或者是SetTimer之类的来替代。  
   
  如果你的系统版本够低的话,98以下,可以使用中断服务,估计会罗嗦很多。  
   
   
  Top

12 楼Redeon(Leon)回复于 2002-03-15 18:14:50 得分 0

UNIX下可以用usleep实现所谓的毫秒级(saloris)。  
  不过win32和unix的毫秒级都不精确。win32大概精确到10ms。  
  usleep延时不超过一秒。Top

13 楼seashoreboy(海滨)回复于 2002-03-15 18:45:40 得分 0

请问谁知道怎么实现精确定时,即以一秒的间隔,准时调用一个函数?Top

14 楼hucong(stupid urchin)回复于 2002-03-15 18:46:08 得分 0

还有一种方法就是用汇编代码写成循环,当然把它放在关键代码里,^_^Top

15 楼Alexeyomux(黑白的背影)回复于 2002-03-15 19:06:58 得分 0

可以用sleep()或delay()函数。Top

16 楼jinbing(若晴)回复于 2002-03-15 19:09:07 得分 0

在linux下是usleep();延时毫秒级Top

17 楼flyingpsd(我飞呀飞呀飞呀飞)回复于 2002-03-15 19:39:48 得分 0

不是一样的睡觉啊?Top

18 楼xday(飙行者)回复于 2002-03-16 03:20:45 得分 0

在linux/unix下是usleep();  
  win32   下是   GetSystemTick();  
   
  不过都不会太准(>>10ms   我想)Top

19 楼qiwei(破框儿)回复于 2002-03-16 09:40:01 得分 0

delay   ||   sleepTop

20 楼gois(gois)回复于 2002-03-16 09:54:25 得分 2

delay(10);/*10ms*/  
  sleep(10);/*10s*/  
  分?Top

21 楼yzfhappy(冷虎)回复于 2002-03-16 11:00:13 得分 0

谢谢大家,我己经解决了。看见这么多的人来帮我,真的不好意思,看来你们都是高手。希望你们百尺竿头更进一步。现把分送上。Top

相关问题

  • 在C/C++ 程序中怎样延时?
  • 怎样再C#中调用C++程序?
  • 怎样将C写的程序改成C++程序
  • 用Delphi/C++怎样编卸载程序
  • linux 下怎样编译C++程序
  • 怎样用C++实现下列程序?
  • 怎样用C++实现下列程序
  • 怎样让C/C++程序定时运行
  • 请问 C# 高手,用 C# 怎样写托盘程序?
  • C问题:怎样使c程序支持鼠标???

关键词

  • c/c++
  • win32
  • 函数
  • sleep
  • unix
  • usleep
  • 延时
  • 级
  • 程序
  • delay

得分解答快速导航

  • 帖主:yzfhappy
  • wsa_socket
  • neptunez
  • hncal
  • zsf345
  • gnuljf
  • allen7757
  • shuicai
  • gois

相关链接

  • C/C++ Blog
  • C/C++类图书
  • C/C++类源码下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
北京创新乐知广告有限公司 版权所有, 京 ICP 证 070598 号
世纪乐知(北京)网络技术有限公司 提供技术支持
Copyright © 2000-2008, CSDN.NET, All Rights Reserved
GongshangLogo