活动对象调度器是指CActiveScheduler 类及其子类的对象。其实这个东西的作用通过命名就能看出,说的通俗一点就是用来管理活动对象的。大多数运行在SymbianC++上的线程都有唯一的一个活动调度器,它通常被框架隐式地创建并启动起来(例如,GUI框架的CONE)。他是用来循环检测活动对象的,一旦有符合条件的活动对象被检测到,就会调用其RunL()方法,使得活动对象对于异步服务的结果进行处理。在GUI程序中由于调度器已经被框架创建并安装好了,因此只需要将活动对象添加到调度器中,此外也无需手动的调用Stop()方法。
在控制台程序中使用调度器 CActiveScheduler有以下几个步骤:
1、创建调度器CActiveScheduler* scheduler = new(ELeave) CActiveScheduler;
2、CleanupStack::PushL(scheduler);
3、安装CActiveScheduler::Install(scheduler);
4、构建活动对象,并add()到调度器中
5、活动对象发送异步请求
6、执行SetActive()方法激活活动对象
7、执行调度器的Star()方法启动调度器进行循环检测,找出优先级高的,活动状态时active的,完成状态status是KnotRequestPending 的活动对象执行其RunL()方法
8、调用Stop()方法停止调度器