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

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

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

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

 

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

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

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

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

 

網(wǎng)友評論