Déclencher des événements de suspension, de reprise et d’arrière-plan pour le débogage des applications UWP dans Visual Studio

Lorsque vous n'effectuez pas de débogage, Windows Process Lifetime Management (PLM) contrôle l'état d'exécution de votre application, soit son démarrage, sa suspension, sa reprise et sa fin en réponse aux actions utilisateur et à l'état du périphérique. Lorsque vous effectuez un débogage, Windows désactive ces événements d'activation. Cette rubrique décrit comment déclencher ces événements dans le débogueur.

Cette rubrique décrit également comment déboguer les tâches en arrière-plan. Les tâches en arrière-plan vous permettent d’effectuer certaines opérations dans un processus en arrière-plan, même lorsque votre application n’est pas en cours d’exécution. Utilisez le débogueur pour placer votre application en mode débogage, puis, sans démarrer l'interface utilisateur, démarrez et déboguez la tâche en arrière-plan.

Pour plus d’informations sur PLM (Process Lifetime Management) et les tâches en arrière-plan, consultez Launching, resuming, and multitasking.

Déclencher les événements PLM (Process Lifetime Management)

Windows peut suspendre votre application lorsque l’utilisateur la quitte ou lorsque Windows entre dans un état de faible consommation d’énergie. Répondez à l'événement Suspending pour enregistrer des données appropriées relatives à l'application et aux utilisateurs dans un espace de stockage permanent et pour libérer les ressources. Lorsqu'une application quitte l'état Suspendu , elle entre dans l'état Exécution et reprend là où elle a été suspendue. Vous pouvez répondre à l'événement Resuming pour restaurer ou actualiser l'état de l'application et pour libérer les ressources.

Même si Windows essaie de conserver en mémoire autant d'applications suspendues que possible, Windows peut arrêter votre application si les ressources sont insuffisantes pour les conserver en mémoire. Un utilisateur peut également explicitement fermer votre application. Il n'existe aucun événement spécial qui indique que l'utilisateur a fermé une application.

Dans le débogueur Visual Studio, vous pouvez suspendre, reprendre et arrêter manuellement vos applications pour déboguer des événements du processus de cycle de vie. Pour déboguer un événement de processus du cycle de vie :

  1. Définissez un point d’arrêt dans le gestionnaire de l’événement que vous souhaitez déboguer.

  2. Appuyez sur F5 pour démarrer le débogage.

  3. Dans la barre d'outils Emplacement de débogage , choisissez l'événement à déclencher :

    Suspend, resume, terminate, and background tasks

    Interrompre et quitter ferme l’application et termine la session de débogage.

Déclencher les tâches en arrière-plan

Une application peut enregistrer une tâche en arrière-plan pour répondre à certains événements système, même si l'application n'est pas en cours d'exécution. Les tâches en arrière-plan ne peuvent pas exécuter le code qui met à jour directement l'interface utilisateur; En fait, elles affichent des informations à l'utilisateur avec des mises à jour de mosaïque, des mises à jour de badge et des notifications contextuelles. Pour plus d’informations, consultez Supporting your app with background tasks.

Déclenchez les événements qui démarrent les tâches en arrière-plan pour votre application à partir du débogueur.

Notes

Le débogueur peut déclencher uniquement les événements qui ne contiennent pas de données, comme les événements qui indiquent un changement d'état sur le périphérique. Vous devez déclencher manuellement les tâches en arrière-plan qui nécessitent la saisie utilisateur ou d'autres données.

La méthode la plus réaliste pour déclencher un événement de tâche en arrière-plan est le moment où votre application n'est pas en cours d'exécution. Toutefois, le déclenchement de l'événement dans une session de débogage standard est également pris en charge.

Déclencher un événement de tâche en arrière-plan à partir d'une session de débogage standard

  1. Définissez un point d'arrêt dans le code d'une tâche en arrière-plan à déboguer.

  2. Appuyez sur F5 pour démarrer le débogage.

  3. Dans la liste des événements dans la barre d'outils Emplacement de débogage , choisissez la tâche en arrière-plan à démarrer.

    Suspend, resume, terminate, and background tasks

Déclencher une tâche en arrière-plan lorsque l'application n'est pas en cours d'exécution

  1. Définissez un point d'arrêt dans le code d'une tâche en arrière-plan à déboguer.

  2. Ouvrez la page des propriétés de débogage du projet de démarrage. Dans l’Explorateur de solutions, sélectionnez le projet. Dans le menu Déboguer , choisissez Propriétés.

    Pour les projets C++, développez Propriétés de configuration, puis choisir Débogage.

  3. Effectuez l'une des opérations suivantes :

    • Pour les projets Visual C# et Visual Basic, choisissez Ne pas lancer, mais déboguer mon code au démarrage

      C#/VB debug launch application property

    • Pour les projets C++, choisissez Non dans la liste Lancer l’application.

      C++/VB Launch application debug property

  4. Appuyez sur F5 pour exécuter l'application en mode débogage. Notez que la liste Processus dans la barre d'outils Emplacement de débogage affiche le nom du package d'application pour indiquer que vous êtes en mode débogage.

    Background task Process list

  5. Dans la liste des événements dans la barre d'outils Emplacement de débogage , choisissez la tâche en arrière-plan à démarrer.

    Suspend, resume, terminate, and background tasks

Déclencher les événements PLM (Process Lifecycle Management) et les tâches en arrière-plan depuis une application installée

Utilisez la boîte de dialogue Déboguer le package de l’application installée pour charger une application déjà installée dans le débogueur. Vous pouvez par exemple déboguer une application installée depuis le Microsoft Store, ou pour laquelle vous disposez des fichiers source, mais pas un projet Visual Studio pour l’application. La boîte de dialogue Déboguer le package de l’application installée vous permet de démarrer une application en mode débogage sur l’ordinateur Visual Studio ou sur un périphérique distant, ou de configurer l’application pour s’exécuter en mode débogage sans la démarrer. Pour plus d’informations, consultez Déboguer un package d’application installé.

Une fois l'application chargée dans le débogueur, vous pouvez utiliser l'une des procédures décrites ci-dessus.

Diagnostic des erreurs d'activation des tâches en arrière-plan

Les journaux de diagnostic dans l’observateur d’événements Windows pour infrastructure en arrière-plan contiennent des informations détaillées que vous pouvez utiliser pour diagnostiquer et résoudre les erreurs des tâches en arrière-plan. Pour consulter le journal :

  1. Ouvrez l'application Observateur d'événements.

  2. Dans le volet Actions , choisissez Afficher et assurez-vous que la case à cocher Afficher les journaux d’analyse et de débogage est activée.

  3. Dans la barre d'outils Observateur d'événements (local) , développez les nœuds Journaux des applications et des services>Microsoft>Windows>BackgroundTasksInfrastructure.

  4. Choisissez le journal Diagnostic .