迷你timer
来源:互联网 发布:vba连接access数据库 编辑:程序博客网 时间:2024/06/11 23:41
用过timer的人都知道一般都需要继承一个类,加个回调,有的时候要用多个timer回调一个东西。总之用起来比较麻烦。
我简化了一下。希望对大家有用。
- /**
- * author :windcao windcao@people.com.cn
- * file: minitimer.h
- * desc: a mini and useful timer
- * copyright: windcao ,2004-08-02
- */
- #ifndef _WINDCAO_MINI_TIMER_
- #define _WINDCAO_MINI_TIMER_
- class MMiniTimerObserver
- {
- public:
- virtual void OnTimeOut(TInt id)=0;
- };
- class CMiniTimer:public CTimer
- {
- public:
- CMiniTimer(TInt aPriority,MMiniTimerObserver& aObserver,TInt aId=0)
- : CTimer(aPriority),iObserver(aObserver),iID(aId){ CActiveScheduler::Add(this);}
- virtual ~CMiniTimer(){ Cancel();}
- private:
- void RunL(){if(iStatus==KErrNone)iObserver.OnTimeOut(this->iID);}
- //don`t use this timer to at
- void At(const TTime& aTime){}
- MMiniTimerObserver & iObserver;
- TInt iID;
- };
- #endif _WINDCAO_MINI_TIMER_
使用方法:
1添加头文件#include "minitimer.h“
2实现MMiniTimerObserver,如果有多个timer用一个observer,你需要定义多个id
3构造timer
- CMiniTimer iTimer1;
- CMiniTimer iTimer2;
- CMiniTimer iTimer3;
- iTimer1= CMiniTimer(CActive::EPrioprtyIdle,aObserver,EFirst);
- iTimer2= CMiniTimer(CActive::EPrioprtyIdle,aObserver,ESecond);
- iTimer3= CMiniTimer(CActive::EPrioprtyIdle,aObserver,EThrid);
4用CTimer::After启动定时器。注意不推荐用这个timer进行At操作。一般会有问题。
- 迷你timer
- timer
- Timer
- timer
- timer
- Timer
- Timer......
- timer
- TIMER
- TIMER
- TIMER
- timer
- Timer
- Timer
- timer
- timer
- Timer
- timer
- spamassasin所需要的PERL包
- 会唱歌的电脑
- DataGridView 单元格编辑后焦点移动到该行的另外一列而不换行
- ISO C++ operator= 重载的一点经验
- 软银有意成为世界最大的移动 Internet 公司
- 迷你timer
- 关闭页面的执行javascript事件
- js鼠标事件大全
- 第10章《子查询》[精通SQL---结构化查询语言详解]
- XP系统从硬盘安装ubuntu 8.04
- system和WinExec的区别
- 奥运版silverlight 俄罗斯方块游戏
- 在windows xp环境下如何完全卸载 oracle9i
- 我的口号:我是金鳞,我敢评!