在以往版本中,后臺任務(wù)都是以獨立的專用進程來運行,因此,定義后臺任務(wù)代碼的類型都要位于 Windows 運行時組件項目中。

不過,在14393中,SDK 作了相應(yīng)的擴展,不僅支持以前的獨立進程中運行后臺任務(wù),也允許后臺任務(wù)與應(yīng)用程序位于同一個進程中執(zhí)行,即單進程后臺任務(wù)(Single – Process)。

聽起來很高深?其實很Easy,和以往的多進程模式的后臺任務(wù)差不多,只是有以下兩點不同:

  1. 對于獨立進程的后臺任務(wù),實現(xiàn)方法是實現(xiàn) IBackgroundTask 接口,然后實現(xiàn) Run 方法;而如果你希望讓后臺任務(wù)在應(yīng)用所在的進程中執(zhí)行,可以重寫 Application 類的 OnBackgroundActivated 方法就可以了,它類似于 IBackgroundTask 的 Run 方法。在OnBackgroundActivated方法中,你可以通過方法參數(shù)獲得一個IBackgroundTaskInstance實例,所以與Run方法的處理是一樣的。
  2. 在配置清單文件時,獨立進程中執(zhí)行的后臺任務(wù)是必須指明入口點的,即后臺任務(wù)類的類型名,包含命名空間路徑。而如果后臺任務(wù)是在應(yīng)用進程中執(zhí)行的話,就不需要指點入口點,因為后臺任務(wù)的入口點與應(yīng)用相同,就是App類。

 

只要明白了以上兩點,你就明白了95%了,剩下的5%,就等老周來演示給大伙瞧吧。

App Service 的實現(xiàn)跟后臺任務(wù)差不多,本次表演,老周就選用AppService來試水吧。

這個示例只有小學(xué)二年級水平,它分為兩個應(yīng)用,一個應(yīng)用具備app service,另一個應(yīng)用調(diào)用它。service的功能是計算兩個整數(shù)的乘積,所以說是小學(xué)二年級水平。

先看app service的應(yīng)用實現(xiàn),項目模板會為我們生成一個App類,基類是Application,很簡單,直接重寫OnBackgroundActivated方法就行了。