来源:蜘蛛抓取(WebSpider)
时间:2015-09-15 09:30
标签:
timesetevent 精度
匿名用户不能发表回复!|
每天回帖即可获得10分可用分!小技巧:
你还可以输入10000个字符
(Ctrl+Enter)
请遵守CSDN,不得违反国家法律法规。
转载文章请注明出自“CSDN(www.csdn.net)”。如是商业用途请联系原作者。2013年7月 VC/MFC大版内专家分月排行榜第三2011年12月 VC/MFC大版内专家分月排行榜第三
2013年7月 VC/MFC大版内专家分月排行榜第三2011年12月 VC/MFC大版内专家分月排行榜第三
本帖子已过去太久远了,不再提供回复功能。windows下C的定时器timeSetEvent使用
windows下C的定时器timeSetEvent使用
发布时间: 2:21:38
编辑:www.fx114.net
本篇文章主要介绍了"windows下C的定时器timeSetEvent使用",主要涉及到windows下C的定时器timeSetEvent使用方面的内容,对于windows下C的定时器timeSetEvent使用感兴趣的同学可以参考一下。
MSDN里定义的函数原型如下:
MMRESULT timeSetEvent( UINT uDelay ,
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& UINT uResolution ,
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& LPTIMECALLBACK fptc ,
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& DWORD dwUser ,
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& UINT fuEvent );
uDelay:以毫秒指定事件的周期。uResolution :以毫秒指定延时的精度,数值越小定时器事件分辨率越高。缺省值为1ms。
fptc :指向一个回调函数。dwUser :存放用户提供的回调数据。
fuEvent :指定定时器事件类型:TIME_ONESHOT:uDelay毫秒后只产生一次事件TIME_PERIODIC :每隔uDelay毫秒周期性地产生事件。
当然,事件类型不止这两个,其他的可参考MSDN。
该函数的参数说明如下:参数uDelay表示延迟时间;参数uResolution表示时间精度,在Windows中缺省值为 1ms;lpTimeProc表示回调函数,为用户自定义函数,定时调用;参数dwUser表示用户提供的回调数据;参数fuEvent为定时器的事件类型,TIME_ONESHOT表示执行一次;TIME_PERIODIC:周期性执行。具体应用时,可以通过调用timeSetEvent()函数,将需要周期性执行的任务定义在lpTimeProc回调函数中(如:定时采样、控制等),从而完成所需处理的事件。需要注意的是:任务处理的时间不能大于周期间隔时间。另外,在定时器使用完毕后,应及时调用 timeKillEvent()将之释放。
下面看个例子:
#include "stdafx.h"&& #include &stdio.h&&& #include &Windows.h&&& #include &Mmsystem.h&&& #pragma comment(lib, "Winmm.lib")&& void WINAPI onTimeFunc(UINT wTimerID, UINT msg,DWORD dwUser,DWORD dwl,DWORD dw2);&& int _tmain(int argc, _TCHAR* argv[])&& {&& &&& MMRESULT timer_&& &&& int n = 0;&& &&& timer_id = timeSetEvent(5000, 1, (LPTIMECALLBACK)onTimeFunc, DWORD(1), TIME_PERIODIC);&& &&& if(NULL == timer_id)&& &&& {&& &&&&&&& printf("timeSetEvent() failed with error %d/n", GetLastError());&& &&&&&&& return 0;&& &&& }&& &&& while(n&20)&& &&& {&& &&&&&&& printf("Hello World/n");&& &&&&&&& Sleep(2000);&& &&&&&&& n++;&& &&& }&& &&& timeKillEvent(timer_id);&&&&&&& //释放定时器&& &&& return 1;&& }&& void WINAPI onTimeFunc(UINT wTimerID, UINT msg,DWORD dwUser,DWORD dwl,DWORD dw2)&& {&& &&& printf("time out/n");&& &&&&& }& #include "stdafx.h"#include &stdio.h&#include &Windows.h&#include &Mmsystem.h&#pragma comment(lib, "Winmm.lib")void WINAPI onTimeFunc(UINT wTimerID, UINT msg,DWORD dwUser,DWORD dwl,DWORD dw2);int _tmain(int argc, _TCHAR* argv[]){&MMRESULT timer_&int n = 0;&timer_id = timeSetEvent(5000, 1, (LPTIMECALLBACK)onTimeFunc, DWORD(1), TIME_PERIODIC);&if(NULL == timer_id)&{&&printf("timeSetEvent() failed with error %d/n", GetLastError());&&return 0;&}&while(n&20)&{&&printf("Hello World/n");&&Sleep(2000);&&n++;&}&timeKillEvent(timer_id);&&&&&&& //释放定时器&return 1;}void WINAPI onTimeFunc(UINT wTimerID, UINT msg,DWORD dwUser,DWORD dwl,DWORD dw2){&printf("time out/n");&}
本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/zidonghua05/archive//4486937.aspx
一、不得利用本站危害国家安全、泄露国家秘密,不得侵犯国家社会集体的和公民的合法权益,不得利用本站制作、复制和传播不法有害信息!
二、互相尊重,对自己的言论和行为负责。
本文标题:
本页链接:2009年2月 .NET技术大版内专家分月排行榜第三
2009年2月 .NET技术大版内专家分月排行榜第三
2009年2月 .NET技术大版内专家分月排行榜第三
本帖子已过去太久远了,不再提供回复功能。2014年5月 Web 开发大版内专家分月排行榜第二2014年4月 Web 开发大版内专家分月排行榜第二
2014年3月 Web 开发大版内专家分月排行榜第三2014年2月 Web 开发大版内专家分月排行榜第三2013年7月 .NET技术大版内专家分月排行榜第三2013年6月 .NET技术大版内专家分月排行榜第三2012年9月 .NET技术大版内专家分月排行榜第三
2012年 总版技术专家分年内排行榜第一
2013年 总版技术专家分年内排行榜第七2011年 总版技术专家分年内排行榜第五2009年 总版技术专家分年内排行榜第九
本帖子已过去太久远了,不再提供回复功能。