频道栏目
读书频道 > 系统 > windows > Windows运行时编程权威指南
3.4.1 Windows应用商店应用的挂起
2015-04-01 13:15:16     我来说两句
收藏   我要投稿

本文所属图书 > Windows运行时编程权威指南

《Windows 运行时编程权威指南》分为两部分,共11章:第一部分(第1~3章)囊括了所有WinRT和Windows应用商店应用开发人员必须了解的重要概念,包括WinRT 类型系统及其设计原则、异步调用、程序包文件,以及应  立即去当当网订购
当用户从你的应用切换至其他应用时,操作系统会将你的应用的进程中所有的线程挂起。进程的状态可在任务管理器(如图3.8所示)中查看。首先,在任务管理器中,选择菜单查看(View)中的状态值(Status Values)选项,并确保显示挂起状态(Show Suspended Status)被选中。接着,启动多个Windows应用商店应用。几秒之后,任务管理器会将所有其线程被挂起的应用的状态标识为“挂起(Suspended)”。对于被挂起的应用,其CPU、磁盘及网络占用均为0。当然,内存占用情况不会发生太大的变化,毕竟这些应用仍然驻留在内存中。

当用户切换至某个挂起的应用时,系统将恢复该应用的线程,并允许该应用再次与用户进行交互。一切似乎都非常理想,但如果该应用显示的是一些实时数据,如气温、股票或体育比赛的得分,应如何应对?一个应用被挂起的时间可能长达数周甚至数月。出现这种情况时,你一定不希望该应用只是简单地恢复之前的状态,并显示过期数据。因此,WinRT的Application基础类提供了一个Resuming事件(简单地对CoreApplication类的Resuming事件进行了包装)。当某个应用恢复时,将引发该事件,应用可对其数据进行刷新,以向用户显示当前信息。要想了解应用被挂起的时间,可查询Suspending事件中的时间,并与从Resuming事件中获取的时间相减;如果只经历了极短的时间,可能便无需刷新数据。对于Resuming事件的回调方法并无任何时间限制。那些无需显示实时数据的应用通常也无需注册Resuming事件。

如果Windows将某个应用挂起,并在后来用宿主视图激活(例如Share)将其激活,Windows将不会恢复该应用的所有线程;主视图线程将仍然保持挂起。如果你试图执行任何线程间通信,则可能会导致线程阻塞。

您对本文章有什么意见或着疑问吗?请到论坛讨论您的关注和建议是我们前行的参考和动力  
上一篇:3.4 进程生命期管理
下一篇:3.4.2 Windows应用商店应用的终止
相关文章
图文推荐
排行
热门
最新书评
文章
下载
读书
特别推荐

关于我们 | 联系我们 | 广告服务 | 投资合作 | 版权申明 | 在线帮助 | 网站地图 | 作品发布 | Vip技术培训 | 举报中心

版权所有: 红黑联盟--致力于做实用的IT技术学习网站