Share via


Développement d’applications en arrière-plan

Notes

Visual Studio génère une erreur chiffrée lors du déploiement sur une image IoT RS5 (ou RS4 avec OpenSSH activée), sauf si un Kit de développement logiciel (SDK) de RS4 ou supérieur est installé, auquel Visual Studio peut accéder.

Les applications en arrière-plan sont des applications qui n’ont pas d’interface utilisateur directe. Une fois déployées et configurées, ces applications démarrent au démarrage de l’ordinateur et s’exécutent en continu sans aucune limitation d’utilisation des ressources de gestion de la durée de vie des processus. S’ils se bloquent ou quittent le système, ils redémarrent automatiquement. Ces applications en arrière-plan ont un modèle d’exécution très simple. Les modèles créent une classe qui implémente l’interface « IBackgroundTask » et génère la méthode « Run » vide. Cette méthode « Run » est le point d’entrée de votre application.

Tâche en arrière-plan

Il existe un point critique à noter : par défaut, l’application s’arrête une fois la méthode d’exécution terminée. Cela signifie que les applications qui suivent le modèle IoT courant d’exécution d’un serveur en attente d’entrée ou sur un minuteur trouveront l’application se quitter prématurément. Pour éviter que cela ne se produise, vous devez appeler la méthode « GetDeferral » pour empêcher l’application de quitter. Vous trouverez ici plus d’informations sur le modèle de report.

Où les applications en arrière-plan peuvent-elles être installées ?

Vous pouvez télécharger et installer des modèles IoT pour activer les applications en arrière-plan à partir de la galerie Visual Studio ici. Vous pouvez également trouver les modèles en recherchant Windows IoT Core Project Templates dans la galerie Visual Studio ou directement à partir de Visual Studio dans la boîte de dialogue Extension et Mises à jour (Extensions d’outils > et Mises à jour > Online).

Quelles langues sont disponibles ?

Vous trouverez des modèles d’application en arrière-plan (IoT) pour :

  • C++File > New > Project > Installed > Visual C++ > Windows > Windows IoT Core
  • C#File > New > Project > Installed > Visual C# > Windows > Windows IoT Core
  • Visual BasicFile > New > Project > Installed > Visual Basic > Windows > Windows IoT Core
  • JavascriptFile > New > Project > Installed > JavaScript > Windows > Windows IoT Core

Comment les applications en arrière-plan sont-elles utilisées ?

La création d’une application en arrière-plan est très similaire à la création d’une tâche en arrière-plan. Lorsque l’application en arrière-plan démarre, la méthode Run est appelée :

public void Run(IBackgroundTaskInstance taskInstance)
{
}

Lorsque la méthode Run se termine, sauf si un objet de report est créé, l’application en arrière-plan se termine. La pratique courante, pour la programmation asynchrone, consiste à prendre un report comme suit :

private BackgroundTaskDeferral deferral;
public void Run(IBackgroundTaskInstance taskInstance)
{
    deferral = taskInstance.GetDeferral();

    //
    // TODO: Insert code to start one or more asynchronous methods
    //
}

Une fois qu’un report est effectué, l’application en arrière-plan continue jusqu’à ce que la méthode Complete de l’objet report soit appelée.

deferral.Complete();

Comment démarrent les applications en arrière-plan ?

Cette question peut être divisée en déploiement et en appel.

Pour déployer une application en arrière-plan, vous pouvez :

  • Utilisez le F5 de Visual Studio (qui génère, déploie et appelle). Pour plus d’informations, consultez notre exemple de Hello World où nous décrivons comment déployer et lancer à partir de Visual Studio.

Notes

Cela ne configure pas votre application en arrière-plan pour démarrer lorsque l’appareil démarre.

  • Créez un AppX dans Visual Studio en sélectionnant Project > Store > Créer des packages d’application. Une fois que vous avez créé un AppX, vous pouvez utiliser windows Device Portal pour le déployer sur votre appareil Windows 10 IoT Standard.

Pour appeler une application en arrière-plan, vous pouvez :

  • Comme mentionné ci-dessus, la fonctionnalité F5 de Visual Studio déploie et démarre immédiatement votre application en arrière-plan.

Notes

Cela ne configure pas votre application en arrière-plan pour démarrer lorsque l’appareil démarre.

  • Pour une application en arrière-plan déployée sur un appareil IoT, vous pouvez utiliser l’utilitaire iotstartup.exe pour configurer votre application en arrière-plan pour démarrer au démarrage de l’appareil. Pour spécifier votre application en arrière-plan en tant qu’application de démarrage, suivez ces instructions (remplacez le nom de votre application par BackgroundApplication1 ci-dessous) :
  1. Démarrez une session PowerShell (PS) avec votre appareil Windows IoT Core, comme décrit ici.

  2. À partir de la session PS, tapez :

    [<your IP address>]: PS C:\> iotstartup list BackgroundApplication1

  3. Vous devez voir le nom complet de votre application en arrière-plan, par exemple :

    Headed : BackgroundApplication1-uwp_cqewk5knvpvee!App Headless : BackgroundApplication1-uwp_1.0.0.0_x86__cqewk5knvpvee

  4. L’utilitaire vérifie que votre application en arrière-plan est une application « sans tête » et est installée correctement. Vous verrez probablement une entrée à tête ainsi que pour vos applications en arrière-plan, mais cela peut être ignoré.

  5. À présent, il est facile de définir cette application en tant qu’application de démarrage. Tapez simplement la commande :

    [<your IP address>]: PS C:\> iotstartup add headless BackgroundApplication1

  6. L’utilitaire vérifie que votre application en arrière-plan a été ajoutée à la liste des « Applications de démarrage » sans tête :

    Added Headless: BackgroundApplication1-uwp_1.0.0.0_x86__cqewk5knvpveeplication1

  7. Continuez et redémarrez votre appareil Windows IoT Core. À partir de la session PS, vous pouvez émettre la commande d’arrêt :

    [<your IP address>]: PS C:\> shutdown /r /t 0

  8. Une fois l’appareil redémarré, votre application en arrière-plan démarre automatiquement et Windows 10 IoT Standard s’assure qu’il est redémarré chaque fois qu’il s’arrête.

    Notes

    Une fois qu’une application en arrière-plan est inscrite pour s’exécuter automatiquement, si l’application se ferme ou se bloque, elle est redémarrée automatiquement. L’application n’est pas informée de la raison pour laquelle elle est démarrée ou redémarrée. Par conséquent, si vous souhaitez effectuer une action spéciale sur un redémarrage, vous devez suivre l’état de l’application dans votre application.

  9. Vous pouvez supprimer votre application en arrière-plan de la liste des applications de démarrage sans tête en tapant la commande :

    [<your IP address>]: PS C:\> iotstartup remove headless BackgroundApplication1

  10. L’utilitaire vérifie que votre application en arrière-plan a été supprimée de la liste des « applications de démarrage » sans tête :

    Removed headless: BackgroundApplication1-uwp_1.0.0.0_x86__cqewk5knvpvee

Voir aussi

Pour ajouter une application en arrière-plan lors de la création d’une image personnalisée, voir Créer un package Appx