定时器相关的类

来源:互联网 发布:mac运行windows软件 编辑:程序博客网 时间:2024/04/29 08:44

1.CTimer类用RTimer在自定义的时间段之后产生一个事件,使用CTimer比在CActive派生类中使用RTimer方便。

CTimer::After()仅仅调用相关联的RTimer类的After()方法和SetActive()方法,当定时器过期后,调用RunL()方法。

2.继承CTimer时注意的地方

CGameEngine::CGameEngine():CTimer(EPriorityStandard)
{
 CActiveScheduler::Add(this);//E32User-CBase  51

}

void CGameEngine::ConstructL()
{
 CTimer::ConstructL();

}

void CGameEngine::Start()
{

  After(0);//或CTimer::After(),不是调用iTimer.After(),iTimer是CTimer的私有成员

}

3.CTimer有两个子类CPeriodic和CHeartbeat,都可以处理周期性的定时器回调,其中心跳更有规律一些,它的使用也稍麻烦点.

使用CPeriodic,CHeartbeat相比使用CTimer,CActive,不需要实现接口了,只需要在Start的时候提供一个回调函数。但采用继承CTimer的方式,在RunL()中更方便处理成员变量的变化。

4.

 

原创粉丝点击