迷你timer

用过timer的人都知道一般都需要继承一个类,加个回调,有的时候要用多个timer回调一个东西。总之用起来比较麻烦。

我简化了一下。希望对大家有用。

  1. /**
  2. * author :windcao windcao@people.com.cn
  3. * file: minitimer.h
  4. * desc: a mini and useful timer
  5. * copyright: windcao ,2004-08-02
  6. */
  7. #ifndef _WINDCAO_MINI_TIMER_
  8. #define _WINDCAO_MINI_TIMER_
  9. class MMiniTimerObserver
  10. {
  11. public:
  12.     virtual void OnTimeOut(TInt id)=0;
  13. };
  14. class CMiniTimer:public CTimer
  15. {
  16. public
  17.     CMiniTimer(TInt aPriority,MMiniTimerObserver& aObserver,TInt aId=0)
  18.         : CTimer(aPriority),iObserver(aObserver),iID(aId){  CActiveScheduler::Add(this);}
  19.     virtual ~CMiniTimer(){  Cancel();}
  20. private:
  21.     void RunL(){if(iStatus==KErrNone)iObserver.OnTimeOut(this->iID);}   
  22.     //don`t use this timer to at
  23.     void At(const TTime& aTime){}
  24.     MMiniTimerObserver & iObserver;
  25.     TInt iID;
  26. };
  27. #endif _WINDCAO_MINI_TIMER_

 

 

使用方法:

1添加头文件#include "minitimer.h“

2实现MMiniTimerObserver,如果有多个timer用一个observer,你需要定义多个id

3构造timer

  1. CMiniTimer iTimer1;
  2. CMiniTimer iTimer2;
  3. CMiniTimer iTimer3;
  4. iTimer1= CMiniTimer(CActive::EPrioprtyIdle,aObserver,EFirst);
  5. iTimer2= CMiniTimer(CActive::EPrioprtyIdle,aObserver,ESecond);
  6. iTimer3= CMiniTimer(CActive::EPrioprtyIdle,aObserver,EThrid);

4用CTimer::After启动定时器。注意不推荐用这个timer进行At操作。一般会有问题。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值