活动对象框架之一:异步函数
2009-07-14 10:43
183 查看
参数包含TRequestStatus&的,必然是异步函数,比如RTimer::After()
void After(TRequestStatus& aStatus, TTimeIntervalMicroSeconds32 aInterval);
TRequestStatus包含一个TInt状态值,代表异步函数的状态,即
-处理状态
-完成状态
许多Symbian自带的系统函数都有同步函数和异步函数两个版本
*比较下面两个函数
TInt MyFunc1(TAny* someArg);
TInt MyFunc2(TAny* someArg, TRequestStatus& aStatus);
*当MyFunc1()被调用时,该函数完成之后送立刻返回运行结果
当调用MyFunc2()时,该函数立刻返回,并且将aStatus设为KRequestPending,表示该函数正在执行,当程序运行完成之后,aStatus发生变化,用来指示运行的结果(如果运行成功则为KErrNone).
调用异步函数示例
*可以同步等待,直到请求完成,比如
RTimer timer; //通过RTimer获得一个时间服务器的句柄
timer.CreateLocal(); //获得本地时间
TRequestStatus status; //生成一个请求状态变量status
timer.After(status,1000000);
User::WatiForRequest(status);
*但是,这样会造成线程挂起1秒钟
*更好的解决方案是使用活动对象,当计时器完成之后通知活动对象
void After(TRequestStatus& aStatus, TTimeIntervalMicroSeconds32 aInterval);
TRequestStatus包含一个TInt状态值,代表异步函数的状态,即
-处理状态
-完成状态
许多Symbian自带的系统函数都有同步函数和异步函数两个版本
*比较下面两个函数
TInt MyFunc1(TAny* someArg);
TInt MyFunc2(TAny* someArg, TRequestStatus& aStatus);
*当MyFunc1()被调用时,该函数完成之后送立刻返回运行结果
当调用MyFunc2()时,该函数立刻返回,并且将aStatus设为KRequestPending,表示该函数正在执行,当程序运行完成之后,aStatus发生变化,用来指示运行的结果(如果运行成功则为KErrNone).
调用异步函数示例
*可以同步等待,直到请求完成,比如
RTimer timer; //通过RTimer获得一个时间服务器的句柄
timer.CreateLocal(); //获得本地时间
TRequestStatus status; //生成一个请求状态变量status
timer.After(status,1000000);
User::WatiForRequest(status);
*但是,这样会造成线程挂起1秒钟
*更好的解决方案是使用活动对象,当计时器完成之后通知活动对象
相关文章推荐
- Symbian编程总结-基础篇-活动对象正解(4)-异步函数的同步调用
- Symbian编程总结-了解篇-活动对象正解(4)-异步函数的同步调用
- 异步函数 活动对象
- 异步函数和活动对象
- Symbian编程总结-基础篇-活动对象正解(4)-异步函数的同步调用
- 活动对象框架探秘(上篇)
- Symbian 活动对象框架
- SignalR代理对象异常:Uncaught TypeError: Cannot read property 'client' of undefined 推出的结论 SignalR 简单示例 通过三个DEMO学会SignalR的三种实现方式 SignalR推送框架两个项目永久连接通讯使用 SignalR 集线器简单实例2 用SignalR创建实时永久长连接异步网络应用程序
- Symbian的消息,异步服务和活动对象
- 20-常用对象API(集合框架-JDK5.0特性-ForEach循环) 21-常用对象API(集合框架-JDK5.0特性-函数可变参数). 1 2
- 活动对象框架之三:使用活动对象
- 关于Inactivity()函数配合活动对象,获取手机不活动时间,实现特定功能
- 基于开源库tufao,一个C + +的异步 Web 框架,使用Qt的对象的通信系统(信号与槽)
- 活动对象框架原理
- javascript中函数的执行环境、作用域链、变量对象与活动对象
- 内核对象之异步IO请求完成时调用一个函数
- 活动对象框架之二:活动对象及活动调度器
- 异步机制, 活动对象,CTime,RTime
- 活动对象框架之四:使用活动调度器
- Symbian 中的活动对象和CS框架