Partager via


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

Remarque

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 aucune interface utilisateur directe. Une fois déployées et configurées, ces applications se lancent au démarrage de l’ordinateur et s’exécutent en continu sans aucune limitation de l’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èrent 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 de l’exécution d’un serveur en attente d’entrée ou sur un minuteur trouveront l’application se quitter prématurément. Pour empêcher cela de se produire, vous devez appeler la méthode « GetDeferral » pour empêcher l’application de quitter. Vous trouverez plus d’informations sur le modèle de report ici.

À partir duquel 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 visual Studio Gallery 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 > en ligne).

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 Basic File > New > Project > Installed > Visual Basic > Windows > Windows IoT Core
  • JavaScript File > 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. Au démarrage de l’application en arrière-plan, 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. Pour la programmation asynchrone, la pratique courante consiste à effectuer 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 les applications en arrière-plan démarrent-elles ?

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

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

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

Remarque

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 le portail d’appareil Windows 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.

Remarque

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 en 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. Poursuivez 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’elle est redémarrée chaque fois qu’elle s’arrête.

    Remarque

    Une fois qu’une application en arrière-plan est inscrite pour s’exécuter automatiquement, si l’application quitte 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 devrez 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, consultez Créer un package Appx