Symbian周期函数(CPeriodic)(

来源:互联网 发布:淘宝客户关系管理标签 编辑:程序博客网 时间:2024/05/16 06:25

 

http://blog.sina.com.cn/s/blog_5ccfd2d50100c1yf.html

 

 

简单说一下CPeriodic,很久之前做FLASH播放器的时候用到了这个类去周期性刷新屏幕。
这次做压力测试的时候又用到了这个类。本来很简单的东西,但是很容易犯错。特在这里记录
一下自己所走的弯路。可能对一些朋友有点帮助,也给自己做一个备忘录吧。
1初始化得到句柄
iCPeriodic = CPeriodic::NewL( CActive::EPriorityStandard );
2启动定时器
void CMyAppUi::StartTimer()//开始启动时钟
{
    if (!iCPeriodic->IsActive())
    {
    //这里容易犯错误
    //Period定义的时候一定要是静态的
    //如果需要引用自己类里为数据。TCallBack(Period,this)初始代化回调的时候一定
    //要加上THIS.我在这里可是吃了亏的
    iCPeriodic->Start( 1000,3 * 1000 * 1000,TCallBack(Period,this));
    }
}
3周期回调函数
//DEBUG的时候可以看看aPtr是否为空
TInt CMyAppUi::Period( TAny* aPtr)
{
    ( static_cast<CMyAppUi*>(aPtr))->DoPeriodTask();
    return ETrue;
}
4周期的回调在这里实现自己的代码
void CMyAppUi::DoPeriodTask()
{
//周期回调
}
5暂停
void CMyAppUi::StopTimer()//开始启动时钟
{
     if ( iCPeriodic->IsActive() )
    {
    iCPeriodic->Cancel();
    }
}
记着析构时间句柄

原创粉丝点击