事件由活动调度器进行调度
事件由活动对象进行处理
活动对象
*可以用来处理异步函数响应
*从CActive派生而来(所有的活动对象都是直接或间接地由CActive派生而来)
*包含
-一个TRequestStatus基类成员变量iStatus,它用于传入异步函数
-RunL()函数,当请求完成之后得以调用
-DoCancel()函数,当请求取消时得以调用
-优先级,用于确定其被调用的优先级
活动调度器
*对于GUI应该程序,在程序启动之后,操作系统会创建一个活动调度器
*活动调度器在应用程序的主线程中运行
*可以自己定制活动调度器,但是对于每个线程只能有一个活动调度器
*活动调度器的运行方式
-同步等待未完成的请求完成
-通过优先级检查注册的活动对象,心判断是否有未完成的请求或是请求是否已经完成(iStatus != KPequestPending)
-当活动对象请求完成之后,RunL()得以调用
-只有当RunL()返回之后,才能检查其它的请求