C++ 延时等待(sleep/timer/wait)

本文详细介绍了在C++中实现延时等待的多种方法,包括使用_sleep()函数、Delay()函数、sleep()函数,以及在VC环境下利用WM_TIMER、COleDateTime、GetTickCount()、timeGetTime()、timeSetEvent()、QueryPerformanceFrequency()和QueryPerformanceCounter()等函数。这些方法在精度和CPU占用率方面各有优缺点,适用于不同的延时需求场景。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

原文链接:http://blog.youkuaiyun.com/tangweide/article/details/7063747

(—)使用_sleep()函数 

#include <iostream>   
using   namespace   std; 

_sleep(5*1000);//延时5秒 

(二)使用Delay(int   time)函数 

#include <ctime> 

void   Delay(int   time)//time*1000为秒数 

clock_t   now   =   clock(); 

while(   clock()   -   now   <   time   ); 


Delay(5*1000);   //延时5秒 

 

在linux下 
#include <unistd.h> 
sleep(5)//延迟5秒 
如果你想延迟一秒以内 
那么用 
#include <ctime> 
void   Delay(int   time)//time*1000为秒数 

clock_t   now   =   clock(); 

while(   clock()   -   now   <   time   ); 

 

VC中几种延迟实现方案

方法一:VC中的WM_TIMER消息映射能进行简单的时间控制。首先调用函数SetTimer()设置定时 间隔,如SetTimer(0,200,NULL)即为设置200ms的时间间隔。然后在应用程序中增加定时响应函数 OnTimer(),并在该函数中添加响应的处理语句,用来完成到达定时时间的操作。这种定时方法非常 简单,可以实现一定的定时功能,但其定时功能如同Sleep()函数的延时功能一样,精度非常低,最小 计时精度仅为30ms,CPU占用低,且定时器消息在多任务操作系统中的优先级很低,不能得到及时响 应,往往不能满足实时控制环境下的应用。只可以用来实现诸如位图的动态显示等对定时精度要求不高的情况。如示例工程中的Timer1。 


方法二:VC中使用sleep()函数实现延时,它的单位是ms,如延时2秒,用sleep(2000)。精度非常 低,最小计时精度仅为30ms,用sleep函数的不利处在于延时期

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值