c#怎样调用timesetevent 线程-CSDN论坛

匿名用户不能发表回复!|
每天回帖即可获得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年 总版技术专家分年内排行榜第九
本帖子已过去太久远了,不再提供回复功能。

我要回帖

更多关于 timesetevent 精度 的文章

 

随机推荐