本章将深入探讨Windows应用商店应用的进程模型。具体来讲,我们将介绍激活应用的各种途径以及应用如何使用线程和窗口。我们还将讨论如何优化应用的架构,以使其在不同页面之间切换时高效地使用内存。本章最后将讨论进程生命期管理(PLM)以及Microsoft Windows如何管理应用的生命期以进一步节约内存、减少CPU占用,并简化最终用户的体验。
理解该主题对于构建Windows应用商店应用至关重要。如果你对Windows桌面应用的进程模型比较熟悉,便知道它相对易于理解,因为我们可以通过使用单个线程、一个主窗口及大量子窗口来了解它。然而,Windows应用商店应用的进程模型与之存在显著差异,且更为复杂,因为它往往需要使用多个线程,每个线程至多拥有一个窗口,其中的子控件均是通过绘制而呈现的。但就模型的复杂性而言,这只能算冰山一角。Windows应用商店应用的进程模型的复杂性源于以下两个主要因素:
Windows应用商店应用是单实例的。在任意时刻,Windows仅允许Windows应用商店应用的一个实例运行于系统中。这有利于节约内存,因为多实例应用各自拥有不同的内存占用。由于大多数应用都拥有一个单个窗口,最终用户在不同应用之间切换便显得更为简单。然而,这也会增加应用的复杂性,因为开发人员必须自己编写代码来对多个文档或标签页进行管理。
Windows应用商店应用的激活。Windows应用商店应用被激活的原因错综复杂。所有的激活操作都会重新激活已处于运行状态的应用,有些激活操作会导致其他线程和窗口的创建,而它们也应由开发人员编写的代码去管理。