图2活动对象不意图
2.3活动对象工作流程
在使用活动对象的线程中包含一个或多个活动对象和一个活动调度器.活动调度器是一个名叫CActiveScheduler类的实例,它通过调用CAc—tiveScheduler::Add(),把活动对象添加到活动调度器中.活动调度器实现一个事件循环,它等于线程的请求信号量.当接收到某个事件时,就会调用该事件所属活动对象的RunL()方法.RunL()方法处理异步函数的完成事件,反过来,该异步函数调用深一层的异步函数.然后,活动调度器为下一个事件等待请求信号量的产生.程序通过调用其中的CActiveScheduler::Start()方法来启动时间循环,一旦循环运行,线程中一切事件将通过活动对象的RunL()函数来执行,如图3所示.
API函数都是异步函数.在程序
中,这些函数可以提供一种并行的操作,使得多个异步函数可以同时执行.在SymbianOS中,可以通过TRequestStatus类型参数来识别异步函数.TRequestStatus是一个类型类(映射为简单整数类型),该类描述异步函数的状态,即该函数处于执行状态还是完成状态.2.2活动对象
在SymbianOS中,活动对象是从CActive派生而来的类(与SymbianOS的c/s结构紧密结合,提供了各种系统服务,包括为应用程序创建的任何异步服务建立干净、标准的接口),如图2所示.使用活动对象来调用异步函数(通过CActive派生类中实现的方法),异步函数执行完成后,一
图3活动对象工作流程图
2.4非抢占式多任务处理模型
活动调度器的等待循环及其活动对象的
搜索“diyifanwen.net”或“第一范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,第一范文网,提供最新人文社科Symbian+OS环境中用活动对象处理非抢占式多任务的安全性分析(3)全文阅读和word下载服务。
相关推荐: