Symbian 活动规划器 CActiveScheduler 的灵活应用
2010-03-26 21:23:00 来源:WEB开发网这个问题确实困扰了很久,呵呵,因为是一个人开发,确实没有人可以帮忙出点主义,脑子也死了,想不开了。现在终于有眉目了,基本可以解决该问题,途径就是理解活动对象和活动规划器的原理,灵活应用这对活宝!
之前一直想着,为了能侦测到异步请求是否完成,CActiveScheduler.Start()这个方法必须在线程的初始就调用,其实可以不这样,CActiveScheduler.Start()在线程的任何地方随时可以调用,且CActiveScheduler起来后,还是可以侦测到“很久”以前就完成的异步请求。例子如下:
/* ============================================================================
Name : NewClassTest.h Author : Alex Version : 1.0 Copyright : su-fun Description : CNewClassTest declaration ============================================================================ */
#ifndef NEWCLASSTEST_H
#define NEWCLASSTEST_H
#include
// For CActive, link against: euser.lib
#include
//For RTimer, link against: euser.lib
class CNewClassTest : public CActive
{
public:
// Cancel and destroy
~CNewClassTest();
// Two-phased constructor.
static CNewClassTest* NewL();
// Two-phased constructor.
static CNewClassTest* NewLC();
public:
// New functions
// Function for making the initial request
void StartL(TInt aState, TTimeIntervalMicroSeconds32 aDelay);
private:
// C++ constructor
CNewClassTest();
// Second-phase constructor
void ConstructL();
private:
// From CActive // Handle completion
void RunL();
// How to cancel me
void DoCancel();
// Override to handle leaves from RunL(). Default implementation causes
更多精彩
赞助商链接