c语言延时函数最简单方法 c语言中延时函数怎么写( 二 )


////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
方式三:利用COleDateTime类和COleDateTimeSpan类结合WINDOWS的消息处理过程来实现秒级延时 。如示例工程中的Timer3和Timer3_1 。以下是实现2秒的延时代码:
COleDateTime start_time = COleDateTime::GetCurrentTime();
COleDateTimeSpan end_time= COleDateTime::GetCurrentTime()-start_time;
while(end_time.GetTotalSeconds() end_time =" COleDateTime::GetCurrentTime()-start_time;"
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
方式四:在精度要求较高的情况下,VC中可以利用GetTickCount()函数 , 该函数的返回值是 DWORD型 , 表示以ms为单位的计算机启动后经历的时间间隔 。精度比WM_TIMER消息映射高,在较短的定时中其计时误差为15ms,在较长的定时中其计时误差较低 , 如果定时时间太长,就好象死机一样,CPU占用率非常高 , 只能用于要求不高的延时程序中 。如示例工程中的Timer4和Timer4_1 。下列代码可以实现50ms的精确定时:
DWORD dwStart = GetTickCount();
DWORD dwEnd = dwStart;
do
{
dwEnd = GetTickCount()-dwStart;
}while(dwEnd 50);
为使GetTickCount()函数在延时或定时期间能处理其他的消息 , 可以把代码改为:
DWORD dwStart = GetTickCount();
DWORD dwEnd = dwStart;
do
{
MSG msg;
GetMessage(msg,NULL,0,0);
TranslateMessage(msg);
DispatchMessage(msg);
dwEnd = GetTickCount()-dwStart;
}while(dwEnd 50);
虽然这样可以降低CPU的占有率,并在延时或定时期间也能处理其他的消息,但降低c语言延时函数最简单方法了延时或定时精度 。
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
方式五:与 GetTickCount()函数类似的多媒体定时器函数DWORD timeGetTime(void),该函数定时精度为ms级,返回从Windows启动开始经过的毫秒数 。微软公司在其多媒体Windows中提供c语言延时函数最简单方法了精确定时器的底层API持,利用多媒体定时器可以很精确地读出系统的当前时间,并且能在非常精确的时间间隔内完成一个事件、函数或过程的调用 。不同之处在于调用DWORD timeGetTime(void) 函数之前必须将 Winmm.lib 和 Mmsystem.h 添加到工程中 , 否则在编译时提示DWORD timeGetTime(void)函数未定义 。由于使用该函数是通过查询的方式进行定时控制的,所以 , 应该建立定时循环来进行定时事件的控制 。如示例工程中的Timer5和Timer5_1 。
c语言延时函数最简单方法的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于c语言中延时函数怎么写、c语言延时函数最简单方法的信息别忘了在本站进行查找喔 。

推荐阅读