传统异步系统一般都用多线程来实现,但是多线程的轮询会浪费处理器周期,从而浪费电能。
于是,symbian平台采用活动对象的方法来实现异步操作。该机制是非抢占式的,
优先级只用于当多个活动对象的任务同时完成时判断哪个先被处理。
实现这个异步模型,需要三个部分
1.活动规划器
2.活动对象
3.异步服务提供器
Symbian OS应用程序,一般一个进程只包含一个线程,每个线程一个活动规划器,
活动规划器管理同一线程中的多个活动对象(无论当前是否有请求服务),
异步服务提供器完成活动对象提出的异步请求。
活动对象封装:
代表请求状态的数据成员: iStatus;
异步服务提供器上的句柄:通常是R类对象的指针;
构造期间与服务提供器的连接;
发布(或重新发布)异步请求的函数:用户自定义;
请求完成时活动规划器调用的处理器函数:RunL();
删除未完成请求的函数(Cancel())
需要注意的要求有
1.iStatus是公有的,异步服务提供器将会改变这个值
2.发布请求时必须调用SetActive(),否则活动规划器将在搜索已完成的活动对象时忽略它,从而导致panic
3.DoCanel是一个纯虚函数,必须实现该函数以提供删除未完成请求所需的功能。但是绝对不能直接调用该函数,而总是应该调用Cancel(),它会调用DoCancel(),同时确保设置必须的标志,从而表明请求已经完成(撤销)。另外绝对不要重写Cancel()函数,它有系统实现了大量的重要功能,并不是一个虚函数,但是需要你自己调用。这里优点绕,结合起来就是DoCancel需要自己实现但不需要自己调用,Cancel()需要自己调用但不需要自己实现。
4.由于RunL()是不可抢占的,所以必须尽可能简短,超过1/10秒程序灵敏度将会受到影响,而超过10秒的话系统将会产生ViewSrv11 Panic
分享到:
相关推荐
在“面向对象技术概述”中,我们首先要理解的是对象的概念。对象是具有属性(数据)和行为(方法)的实体,这些属性描述了对象的状态,而方法定义了对象可以执行的操作。对象的实例化使得我们可以创建出具有特定状态...
JavaScript中的Window对象是浏览器环境中最基础且至关重要的对象,它代表了浏览器的主窗口或当前活动的窗口。Window对象不仅提供了访问和操作浏览器窗口的各种功能,还是其他许多JavaScript对象的父对象,比如...
面向对象方法学具有概念和表示方法的一致性,保证了各项开发活动之间的平滑过渡,开发人员可以比较容易地跟踪整个开发过程。 面向对象设计的准则包括: 1. 模块化:面向对象设计支持模块化设计的原则,对象就是...
面向对象程序设计概述 面向对象程序设计(Object-Oriented Programming, OOP)是一种新的程序设计思想,它是在吸收结构化程序设计的一切优点的基础上发展起来的。这种新的思想更接近人的思维活动,人们利用这种思想...
风险评估项目策划与活动概述是IT安全领域中的关键环节,主要目标是对信息系统进行深入的风险识别、分析和评估,以确保其稳定、安全运行。以下将详细介绍相关知识点。 一、风险评估项目概述 风险评估项目首先需要对...
【QC小组活动程序概述】 QC小组活动是一种集体参与的质量改进方法,主要分为“问题解决型”和“创新型”两大类。这些活动旨在通过系统性的步骤和PDCA(策划、实施、检查、行动)循环,提升工作效率,解决问题或创新...
通过UML的用例图、活动图或者序列图,可以详细描述用户与系统的交互过程,从而生成全面的测试用例。 例如,启动应用程序的用例(HLUC1)描述了用户双击图标启动应用,而转换美元的用例(EUC3)则涉及用户输入金额和...
信息化活动管理是对人类社会活动中的信息技术应用进行规划、组织、指导和控制的过程,它在现代社会中扮演着至关重要的角色。信息化活动的管理不仅涉及到企业、政府等组织的运作,也涵盖了个人和社会群体的信息处理和...
【筹资活动核算概述】 筹资活动是企业获取资金的重要方式,主要涉及吸收直接投资、发行股票、银行借款和发行债券等活动。这些方式为企业提供所需的资金,以支持其运营、扩张或投资项目。在筹资过程中,企业应遵循...
在本概述中,我们将深入探讨Android活动的概念、生命周期以及如何在实践中管理它们。 1. **活动概念**: - 活动是用户可以看到并与其交互的界面,通常与一个或多个布局文件关联,这些文件定义了屏幕上显示的视图...
【标题】"活动对象2 张锦锋Symbian讲座" 暗示这是一个与Symbian操作系统相关的技术讲座,由专家张锦锋主持。Symbian是历史上流行的一款智能手机操作系统,尤其在2000年代中期至晚期,它在全球范围内广泛应用于诺基亚...
面向对象系统分析与设计课件及复习资料 为老师上课用课件和复习指导 内容包括: 1.3 uml概述 1.3.1 uml简史 1.3.2 uml概貌 1.3.3 uml的特点和用途 第2章 面向对象的软件开发过程 2.1 rational统一...
#### 一、面向对象技术概述 面向对象技术是一种软件开发方法,它将复杂系统分解成一系列相对独立的对象,并通过这些对象之间的交互来构建整个系统。这种方法强调了封装、继承和多态这三个核心特性。 1. **封装**:...
第一节 面向对象方法概述 18 对象与面向对象 18 面向对象技术产生的原因 19 面向对象方法的基本思想 19 概念 19 面向对象技术的特点 19 面向对象语言及系统 19 第二节 面向对象的分析 20 OOA分析的任务 20 OOA分析的...
- **流对象**:包括事件、活动和条件,是构成流程的基本元素。 - **事件**:表示业务流程期间发生的某些情况,如启动或结束。 - **活动**:表示需要执行的具体任务。 - **条件**:用于控制流程的方向。 - **连接...
- **ActivePresentation**:返回当前活动的演示文稿对象。 - **Presentations**:包含所有打开的演示文稿对象的集合。 - **AddIns**:管理所有加载项的集合。 - **CommandBars**:包含所有命令栏对象的集合。 - **...