计时器 [英] Timers

查看:94
本文介绍了计时器的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

您好

我有关于WaitableTime模块的问题

I have a question about WaitableTime module

我可以对多个实例使用相同的句柄吗

Can I use same handle to more than one instance

我的动机是编写一些计时器驱动程序:

my motivation is to write some timer driver:

class TimerDriver

class TimerDriver

{

     private:

    private:

static HANDLE m _

static HANDLE m_

class TimerDriver
{

public:  
           
//period=0, one shot timer
void init(DWORD a_Timeout, DWORD a_Period);
           void start(void);
           void stop(void);

protected:
          // notify to applicative lyer
          virtual void tmrDrv_done(void) =0;
   
private:
   
  // common callback, to be called from any timer instance
  //calls to tmrDrv_done
  static timerCallback(LPVOID,DWORD,DWORD);
  //common handle to multiple timer instances
  static HANDLE m_pHandle;
};



//driver basic implementation

m_pHandle = /*return val from create function, that gets 
timerCallback as a parameter*/

VOID TimerDriver:: timerCallback(LPVOID a, DWORD b, DWORD c)
{
      tmrDrv_done();
}



class IAppTimerCallback
{
public:
virtual void    appTmr_done(BYTE a_ID)=0;
}


class AppTimer:
public TimerDriver
{
 public:
        AppTimer(IAppTimerCallback& a_rCallback);
        void init(DWORD a_Timeout, DWORD a_Period);
        void start(void);
        void stop(void);
privte:
        void tmrDrv_done();
         
     //dedicated id to specific oject  
     BYTE m_id;
     //counter to amount of created objects
     static BYTE m_idCnt;
     IAppTimerCallback m_rCallback;
}

//basic implementation
/*init function  gives id to created obj*/


void AppTimer:: tmrDrv_done(void)
{
   m_rCallback.appTmr_done(m_id);
}


class Appl : public IAppTimerCallback
{
  public:
    void appTmr_done(BYTE a_ID);
}

//base implementation

void Appl: appTmr_done(a_ID)
{
    switch(a_ID){/**/}
}

/// main///

void main(void)
{
   Appl app;
   AppTimer t1(app);
   AppTimer t2(app);

/*
  dostuff
*/
  
}

pHandle;

};

推荐答案

Hi CripplerCrossface,

Hi CripplerCrossface,

欢迎来到MSDN论坛。

Welcome to the MSDN forum.

请参阅您的描述,您的问题与C ++开发有关。由于我们的论坛是讨论VS IDE,我将帮助您将此线程移至相应的论坛:
Visual Studio语言>
Visual C ++
寻求更专业的支持,感谢您的理解。

Refer to your description, your issue is about the C++ development. Since our forum is to discuss the VS IDE, I will help you move this thread to the appropriate forum: Visual Studio Languages > Visual C++ to seek for a more professional support, thank you for your understanding.

祝你好运,

Sara


这篇关于计时器的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆