zoukankan      html  css  js  c++  java
  • C的定时器timeSetEvent使用

    MMRESULT timeSetEvent( UINT uDelay, 
                                     UINT uResolution, 
                                     LPTIMECALLBACK lpTimeProc, 
                                     WORD dwUser, 
                                     UINT fuEvent )

            uDelay:以毫秒指定事件的周期
             Uresolution:以毫秒指定延时的精度,数值越小定时器事件分辨率越高。缺省值为1ms。
             LpTimeProc:指向一个回调函数,为用户自定义函数,定时调用。
             DwUser:存放用户提供的回调数据。
             FuEvent:指定定时器事件类型: TIME_ONESHOT:uDelay毫秒后只产生一次事件;  TIME_PERIODIC :每隔uDelay毫秒周期性地产生事件。

    具体应用时,可以通过调用timeSetEvent()函数,将需要周期性执行的任务定义在lpTimeProc回调函数中(如:定时采样、控制等),从而完成所需处理的事件。需要注意的是:任务处理的时间不能大于周期间隔时间。另外,在定时器使用完毕后,应及时调用timeKillEvent()将之释放。

    1、timeSetEvent最长时间间隔不能超过1000秒,即1000000毫秒,超过返回失败,可用CreateTimerQueryTimer或SetTimer(回调的方式)代替

    2、timeSetEvent会生成一个独立的Timer回调线程,属多线程

    3、timeSetEvent可创建高精度定时器,精确到1ms,SetTimer无法精确到1ms

    4、timeKillEvent关掉定时器的函数,一定要一一对应,每次timeSetEvent返回的定时器的ID是不一样的,调用一次timeSetEvent就会产生一次Id,调用了几次timeSetEvent,就需要调用几次timeKillEvent ,而且必须是相对应的ID,否则可能出现程序崩溃!

  • 相关阅读:
    topcoder srm 320 div1
    topcoder srm 325 div1
    topcoder srm 330 div1
    topcoder srm 335 div1
    topcoder srm 340 div1
    topcoder srm 300 div1
    topcoder srm 305 div1
    topcoder srm 310 div1
    topcoder srm 315 div1
    如何统计iOS产品不同渠道的下载量?
  • 原文地址:https://www.cnblogs.com/shikamaru/p/7656532.html
Copyright © 2011-2022 走看看