Como disparar eventos de suspensão, retomada e segundo plano durante a depuração de aplicativos UWP no Visual StudioHow to trigger suspend, resume, and background events while debugging UWP apps in Visual Studio

Quando você não está depurando, o PLM (Gerenciamento de Tempo de Vida do Processo) do Windows controla o estado da execução de seu aplicativo, iniciando, suspendendo, retomando e encerrando o aplicativo em resposta às ações do usuário e ao estado do dispositivo.When you are not debugging, Windows Process Lifetime Management (PLM) controls the execution state of your app—starting, suspending, resuming, and terminating the app in response to user actions and the state of the device. Quando você está depurando, o Windows desabilita esses eventos de ativação.When you are debugging, Windows disables these activation events. Este tópico descreve como acionar esses eventos no depurador.This topic describes how to fire these events in the debugger.

Este tópico também descreve como depurar Tarefas em segundo plano.This topic also describes how to debug Background tasks. As tarefas em segundo plano permitem que você execute determinadas operações em um processo em segundo plano, mesmo quando seu aplicativo não está em execução.Background tasks enable you to perform certain operations in a background process, even when your app is not running. Você pode usar o depurador para colocar o aplicativo no modo de depuração e depois, sem iniciar a interface de usuário, iniciar e depurar a tarefa em segundo plano.You can use the debugger to put your app in debug mode and then— without starting the UI—start and debug the background task.

Para obter mais informações sobre o gerenciamento de tempo de vida de processos e tarefas em segundo plano, consulte iniciando, retomando e multitarefa.For more information about Process Lifetime Management and background tasks, see Launching, resuming, and multitasking.

Disparar eventos de gerenciamento de tempo de vida do processoTrigger Process Lifetime Management events

O Windows pode suspender seu aplicativo quando o usuário sai dele ou quando o Windows entra em um estado de baixa energia.Windows can suspend your app when the user switches away from it or when Windows enters a low-power state. Você pode responder ao evento Suspending para salvar dados relevantes do aplicativo e do usuário em um armazenamento persistente e para liberar recursos.You can respond to the Suspending event to save relevant app and user data to persistent storage and to release resources. Quando um aplicativo é retomado do estado Suspenso, ele entra no estado De Execução e continua de onde estava quando foi suspenso.When an app is resumed from the Suspended state, it enters the Running state and continues from where it was when it was suspended. Você pode responder ao evento Resuming para restaurar ou atualizar o estado do aplicativo e recuperar recursos.You can respond to the Resuming event to restore or refresh application state and reclaim resources.

Embora o Windows tente manter o máximo possível de aplicativos suspensos na memória, ele poderá terminar o aplicativo se não houver recursos suficientes para mantê-lo na memória.Although Windows attempts to keep as many suspended apps in memory as possible, Windows can terminate your app if there aren't enough resources to keep it in memory. Um usuário também pode fechar o aplicativo explicitamente.A user can also explicitly close your app. Não há nenhum evento especial para indicar que o usuário fechou um aplicativo.There's no special event to indicate that the user has closed an app.

No depurador do Visual Studio, você pode manualmente suspender, retomar e terminar seus aplicativos para depurar eventos do ciclo de vida do processo.In the Visual Studio debugger, you can manually suspend, resume, and terminate your apps to debug process lifecycle events. Para depurar um evento do ciclo de vida do processo:To debug a process lifecycle event:

  1. Defina um ponto de interrupção no manipulador do evento que você deseja depurar.Set a breakpoint in the handler of the event that you want to debug.

  2. Pressione F5 para iniciar a depuração.Press F5 to start debugging.

  3. Na barra de ferramentas Local de Depuração, escolha o evento que deseja acionar:On the Debug Location toolbar, choose the event that you want to fire:

    Tarefas de suspender, retomar, encerrar e em segundo plano

    Suspender e encerrar fecha o aplicativo e encerra a sessão de depuração.Suspend and terminate closes the app and ends the debug session.

Disparar tarefas em segundo planoTrigger background tasks

Qualquer aplicativo pode registrar uma tarefa em segundo plano para responder a determinados eventos do sistema, mesmo quando o aplicativo não está sendo executado.Any app can register a background task to respond to certain system events, even when the app is not running. As tarefas em segundo plano não podem executar o código que atualiza diretamente a interface do usuário; em vez disso, elas mostram informações para o usuário com atualizações de bloco, atualizações de notificação e notificações do sistema.Background tasks can't run code that directly updates the UI; instead, they show information to the user with tile updates, badge updates, and toast notifications. Para obter mais informações, consulte dando suporte ao seu aplicativo com tarefas em segundo plano.For more information, see Supporting your app with background tasks.

Você pode disparar os eventos que iniciam as tarefas em segundo plano do aplicativo por meio do depurador.You can trigger the events that start background tasks for your app from the debugger.

Observação

O depurador só pode disparar os eventos que não contêm dados, como os que indicam uma alteração de estado no dispositivo.The debugger can trigger only those events that do not contain data, such as events that indicate a change of state in the device. Você precisa disparar manualmente as tarefas em segundo plano que exigem a entrada do usuário ou outros dados.You have to manually trigger background tasks that require user input or other data.

A maneira mais realística de disparar um evento de tarefa em segundo plano é quando o aplicativo não está sendo executado.The most realistic way to trigger a background task event is when your app is not running. No entanto, também é possível disparar o evento em uma sessão de depuração padrão.However, triggering the event in a standard debugging session is also supported.

Disparar um evento de tarefa em segundo plano de uma sessão de depuração padrãoTrigger a background task event from a standard debug session

  1. Defina um ponto de interrupção no código de tarefa em segundo plano que você deseja depurar.Set a breakpoint in the background task code that you want to debug.

  2. Pressione F5 para iniciar a depuração.Press F5 to start debugging.

  3. Na lista de eventos na barra de ferramentas Local de Depuração, escolha a tarefa em segundo plano que você deseja iniciar.From the events list on the Debug Location toolbar, choose the background task that you want to start.

    Tarefas de suspender, retomar, encerrar e em segundo plano

Disparar uma tarefa em segundo plano quando o aplicativo não está em execuçãoTrigger a background task when the app is not running

  1. Defina um ponto de interrupção no código de tarefa em segundo plano que você deseja depurar.Set a breakpoint in the background task code that you want to debug.

  2. Abra a página de propriedades de depuração do projeto de inicialização.Open the debug property page for the start-up project. No Gerenciador de Soluções, selecione o projeto.In Solution Explorer, select the project. No menu Depurar, escolha Propriedades.On the Debug menu, choose Properties.

    Para projetos C++, expanda Propriedades de configuração e escolha depuração.For C++ projects, expand Configuration Properties and then choose Debugging.

  3. Realize um dos seguintes procedimentos:Do one of the following:

    • Para projetos em Visual C# e Visual Basic, escolha Não iniciar, mas depurar meu código quando ele for iniciadoFor Visual C# and Visual Basic projects, choose Do not launch, but debug my code when it starts

      Propriedade do aplicativo inicialização de depuração do C#/VBC#/VB debug launch application property

    • Para projetos C++, escolha não na lista Iniciar aplicativo .For C++ projects, choose No from the Launch application list.

      C++/VB iniciar a propriedade de depuração do aplicativoC++/VB Launch application debug property

  4. Pressione F5 para colocar o aplicativo no modo de depuração.Press F5 to put the app in debug mode. Observe que a lista Processo na barra de ferramentas Local de Depuração exibe o nome do pacote do aplicativo para indicar que você está no modo de depuração.Note the Process list on the Debug Location toolbar displays the app package name to indicate that you are in debug mode.

    Lista de processos da tarefa em segundo planoBackground task Process list

  5. Na lista de eventos na barra de ferramentas Local de Depuração, escolha a tarefa em segundo plano que você deseja iniciar.From the events list on the Debug Location toolbar, choose the background task that you want to start.

    Tarefas de suspender, retomar, encerrar e em segundo planoSuspend, resume, terminate, and background tasks

Disparar eventos de gerenciamento de tempo de vida do processo e tarefas em segundo plano de um aplicativo instaladoTrigger Process Lifetime Management events and background tasks from an installed app

Use a caixa de diálogo depurar pacote do aplicativo instalado para carregar um aplicativo que já está instalado no depurador.Use the Debug Installed App Package dialog box to load an app that is already installed into the debugger. Por exemplo, você pode depurar um aplicativo que foi instalado de Microsoft Store ou depurar um aplicativo quando tiver os arquivos de origem para o aplicativo, mas não um projeto do Visual Studio para o aplicativo.For example, you might debug an app that was installed from Microsoft Store, or debug an app when you have the source files for the app, but not a Visual Studio project for the app. A caixa de diálogo depurar pacote do aplicativo instalado permite iniciar um aplicativo no modo de depuração no computador do Visual Studio ou em um dispositivo remoto, ou para definir o aplicativo para ser executado no modo de depuração, mas não iniciá-lo.The Debug Installed App Package dialog box allows you to start an app in debug mode on the Visual Studio machine or on a remote device, or to set the app to run in debug mode but not start it. Para obter mais informações, consulte depurar um pacote do aplicativo instalado.For more information, see Debug an installed app package.

Após o aplicativo ser carregado no depurador, você poderá executar qualquer um dos procedimentos acima.Once the app is loaded into the debugger, you can use any of the procedures described above.

Diagnosticando erros de ativação de tarefa em segundo planoDiagnosing background task activation errors

Os logs de diagnóstico no Windows Visualizador de Eventos para a infraestrutura em segundo plano contêm informações detalhadas que você pode usar para diagnosticar e solucionar problemas de erros de tarefas em segundo plano.The diagnostic logs in Windows Event Viewer for the background infrastructure contain detailed information that you can use to diagnose and troubleshoot background task errors. Para exibir o log:To view the log:

  1. Abra o aplicativo visualizador de eventos.Open the Event Viewer application.

  2. No painel Ações, escolha Exibir e verifique se Mostrar logs analíticos e de depuração está marcado.In the Actions pane, choose View and make sure Show Analytic and Debug Logs is checked.

  3. Na árvore Visualizador de eventos (local) , expanda os nós aplicativos e logs de serviços > Microsoft > Windows > BackgroundTasksInfrastructure.On the Event Viewer (Local) tree, expand the nodes Applications and Services Logs > Microsoft > Windows > BackgroundTasksInfrastructure.

  4. Escolha o log Diagnóstico.Choose the Diagnostic log.

Confira tambémSee also