在以往版本中,后台任务都是以独立的专用进程来运行,因此,定义后台任务代码的类型都要位于 Windows 运行时组件项目中。
不过,在14393中,SDK 作了相应的扩展,不仅支持以前的独立进程中运行后台任务,也允许后台任务与应用程序位于同一个进程中执行,即单进程后台任务(Single – Process)。
听起来很高深?其实很Easy,和以往的多进程模式的后台任务差不多,只是有以下两点不同:
- 对于独立进程的后台任务,实现方法是实现 IBackgroundTask 接口,然后实现 Run 方法;而如果你希望让后台任务在应用所在的进程中执行,可以重写 Application 类的 OnBackgroundActivated 方法就可以了,它类似于 IBackgroundTask 的 Run 方法。在OnBackgroundActivated方法中,你可以通过方法参数获得一个IBackgroundTaskInstance实例,所以与Run方法的处理是一样的。
- 在配置清单文件时,独立进程中执行的后台任务是必须指明入口点的,即后台任务类的类型名,包含命名空间路径。而如果后台任务是在应用进程中执行的话,就不需要指点入口点,因为后台任务的入口点与应用相同,就是App类。
只要明白了以上两点,你就明白了95%了,剩下的5%,就等老周来演示给大伙瞧吧。
App Service 的实现跟后台任务差不多,本次表演,老周就选用AppService来试水吧。
这个示例只有小学二年级水平,它分为两个应用,一个应用具备app service,另一个应用调用它。service的功能是计算两个整数的乘积,所以说是小学二年级水平。
先看app service的应用实现,项目模板会为我们生成一个App类,基类是Application,很简单,直接重写OnBackgroundActivated方法就行了。
