上课讲了Symbian OS中多线程的使用, 这可我们说说Symbian OS中使用更频繁的一个框架:Active Object(这里简称AO)。

上课讲了Symbian OS中多线程的使用, 这可我们说说Symbian OS中使用更频繁的一个框架:Active Object(这里简称AO)。
多线程在传统程序中使用非常的广泛, 但是在资源有限的小型设备上却不一定是上乘选择。 通过上课的例程我们看到每个线程都要分配一定的内存, 如果所有的异步操作都通过多线程来做的话, 对系统是一个不小的负担。 AO的设计就是要在同一个线程内处理异步操作。

AO 是在 ActiveScheduler (AS) 的协调下工作的, 当一个AO发出异步请求后,请求函数会立即返回,AO可以继续运行,或者等待。 异步操作完成后, AS会得到通知,然后它调用相应的AO中的RunL函数。 所以AO的普遍用法就是给异步操作创建一个请求函数, 然后在RunL中处理操作结果。举例说明:我们有一个socket, 需要从网络读入一些数据然后输出, 那么我们就需要:

一个请求函数:
void MyA:RequestReceive()
{
iSocket.Recv(iBuf,...,iStatus);
}

和RunL:
void MyA:RunL()
{
iConsole->Printf(iBuf);
}

使用此AO的时候, 就可以先调用RequestReceive()然后继续做其他的事情, 当socket读入完毕后AS会调用这个AO的RunL,那么接受的数据就会被打印出来了。当然,要实际在程序中使用AO我们还需要学习很多东西。到此你只需要对AO有个概念上的理解。

以下是在NewLC转过来的一个图示, 基本勾画出了Active Object的框架:


今天先说到这里, 因为现在比放假的时候忙了许多, 没有时间大块的写文章了。 只能每次写一小段, 这样一些比较大的话题就要分n课来说了。

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/10294527/viewspace-126306/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/10294527/viewspace-126306/

Symbian OS 开发初级手册 9(转)相关推荐

  1. Symbian OS 开发初级手册 (1)(转)

    Symbian OS是当前应用最为广泛的smart phone操作系统. Nokia,Panasonic,Siemens,Sony Ericsson的很多手机都是基于这个系统的. 可惜国内关于Symb ...

  2. Symbian OS 开发初级手册(转)

    在创建实例的时候Symbian C++使用 new (ELeave) 来代替普通的 new , 比如: CBar *pBar = new (ELeave) CBar; 在创建实例的时候Symbian ...

  3. Symbian OS 开发的特点(转)

    Symbian OS 作为一个专门为手机打造的操作系统与PC的操作系统有着很多根本上的不同.本文就来探索一下这些区别.了解这些区别有助于我们更容易的理解Symbian OS的设计(比如清洁栈,二层构建 ...

  4. symbian系统开发教程(一)

    第一章:Symbian OS简介 作者:谢兴        enigma19971@hotmail.com                                         ---转载需 ...

  5. Symbian OS简介

    原文地址:http://blog.csdn.net/wh_xiexing/archive/2007/11/15/1887002.aspx 1.1.    Symbian系统简介        当前有很 ...

  6. symbian系统开发教程(一) 1

    第一章:Symbian OS简介 作者:谢兴        enigma19971@hotmail.com                                         ---转载需 ...

  7. Carbide.c++ For Symbian 搭建开发环境

    在搭建开发环境之前,首先我们下载需要的SDK及辅助工具. 1. 下载perl,SDK要求的版本是5.6.1版的,只能是这个版本的,版本高了或低了都可能导致搭建环境的不成功,下载地址:http://ww ...

  8. Symbian S60开发环境搭建

    一.准备工作 1. 下载perl,必须用5.6.1版,版本高了或低了都可能导致搭建环境的不成功 下载地址:http://www.activestate.com/ 2. 下载java的运行环境,要求是1 ...

  9. Symbian OS on E65应用开发手记(3)——SDK注册及14天学习总结

    在环境搭建完成14天以后,今儿竟然神奇地提示我SDK已过期,需要注册--真吓人,你干吗我刚安装完的时候不提示我注册啊?折腾我!!!还以为我会从此找不到序列号,从此用不了了呢... 注册方法如下: 在对 ...

最新文章

  1. Mac OS X 下查看和设置JAVA_HOME
  2. 8.3折特惠票仅剩3天!「2019 嵌入式智能国际大会」全日程大公开!
  3. Python编程基础:第十九节 索引Index Operator
  4. 服务器里的文件怎么实时更新,简单几步,利用Serverless,让COS中文件变更自动刷新CDN...
  5. Java----代码优化篇
  6. java中有stdin_在java中听stdin的后台进程
  7. 细粒度权限控制 linux,利用docker插件实现细粒度权限控制
  8. fiddler在ios10.3系统抓包https失败原因解决
  9. SVN下载以及中文包安装
  10. 晶闸管触发电路的基本要求
  11. AHK实现DD驱动按键连发
  12. badbody下_badboy下载_badboy测试工具2.0.5官方免费版 - 系统之家
  13. hightopo|海上作业平台的三维可视化场景
  14. 如何修复损坏的excel文件?
  15. 【转】《Unity Shader入门精要》冯乐乐 随书彩图
  16. ThreadX视频教程第2期:通俗易懂的介绍Cortex-M内核的OS特性,双堆栈,非特权级,PendSV,SVC,Systick等,争取人人都可以掌握
  17. C++跟C#获取电脑上连接的多个摄像头名称与编号
  18. Spring bean的生命周期init和destory
  19. 20154312 曾林 Exp8 web基础
  20. ORCALE DDL,DML,DQL命令

热门文章

  1. 如何下载一些网站本身不希望你下载的文件呢
  2. 武汉铁路运输学校计算机982班,武汉铁路运输学校分数线
  3. cmd执行程序突然卡住解决办法
  4. 建筑图纸设计加密软件在规划设计行业的应用价值
  5. iphone 计算机知道密码忘了,苹果笔记本密码忘了怎么办_苹果笔记本密码忘记如何解决-win7之家...
  6. JS对手机号码和验证码、QQ号码进行验证
  7. 外卖帝国的一些潜规则
  8. 线元法输入曲线要素_DELMIA软件物流仿真:带曲线转角输送带输送物料的仿真操作方法...
  9. 【华为oj】计票统计
  10. iPhone 无需越狱修改wx+zfb+qq步数