Como disparar suspender, continuar e eventos em 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, Windows gerenciamento de tempo de vida do processo (PLM) controla o estado de execução do seu aplicativo — iniciando, suspendendo, retomando e encerrando o aplicativo em resposta às ações do usuário e o 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. Essas tarefas permitem que você execute certas operações em um processo em segundo plano, mesmo quando o aplicativo não está sendo executado.Background tasks enable you to perform certain operations in a background process, even when you 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 tarefas de gerenciamento de tempo de vida do processo e em segundo plano, consulte Iniciar, retomar e multitarefa.For more information about Process Lifetime Management and background tasks see Launching, resuming, and multitasking.

Eventos de gerenciamento de tempo de vida do processo de gatilhoTrigger Process Lifetime Management events

O Windows pode suspender o aplicativo quando o usuário sai dele ou quando o Windows entra em um estado de baixo consumo de 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 Suspended de estado, ele entra a executando de estado 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 breakpooint 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. Sobre o local de depuração barra de ferramentas, escolha o evento que você deseja acionar:On the Debug Location toolbar, choose the event that you want to fire:

    Suspender, retomar, encerrar e tarefas em segundo planoSuspend, resume, terminate, and background tasks

    Observe que suspender e encerrar fecha o aplicativo e encerra a sessão de depuração.Note that Suspend and terminate closes the app and ends the debug session.

Tarefas em segundo plano de gatilhoTrigger 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 que dão suporte a seu aplicativo com tarefas em segundo planoFor 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.

Note

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 do plano de fundo 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 sobre o local de depuração barra de ferramentas, 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.

    Suspender, retomar, encerrar e tarefas em segundo planoSuspend, resume, terminate, and background tasks

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. Sobre o Debug menu, escolha propriedades.On the Debug menu, choose Properties.

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

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

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

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

    • Para projetos em JavaScript e Visual C++, escolha nenhuma da Iniciar aplicativo lista.For JavaScript and Visual C++ projects, choose No from the Launch application list.

      C++/propriedade de depuração do aplicativo inicie VBC++/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 a processo lista os local de depuração barra de ferramentas exibe o nome do pacote de 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 de tarefa em segundo planoBackground task Process list

  5. Na lista de eventos sobre o local de depuração barra de ferramentas, 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.

    Suspender, retomar, encerrar e tarefas em segundo planoSuspend, resume, terminate, and background tasks

Disparar eventos de gerenciamento de tempo de vida de processos e tarefas de um aplicativo instalado em segundo planoTrigger Process Lifetime Management events and background tasks from an installed app

Use o depurar pacote do aplicativo instalado caixa de diálogo 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 tenha sido instalado na Microsoft Store ou depurar um aplicativo quando você tem 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. O depurar pacote do aplicativo instalado caixa de diálogo permite que você inicia um aplicativo no modo de depuração na máquina do Visual Studio ou em um dispositivo remoto, ou para definir o aplicativo seja executado no modo de depuração, mas não iniciá-lo.The Debug Installed App Package dialog box allows you 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 pacote de 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 Visualizador de eventos do Windows para a infraestrutura de plano de fundo contém informações detalhadas que você pode usar para diagnosticar e solucionar problemas de erros de tarefa em segundo plano.The diagnostic logs in Windows Event Viewer for the background infrastructure contains 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 ações painel, escolha exibição e verifique se Mostrar Logs analíticos e depuração é verificada.In the Actions pane, choose View and make sure Show Analytic and Debug Logs is checked.

  3. Sobre o Visualizador de eventos (Local) de árvore, expanda os nós Applications and Services Logs > Microsoft > Windows > BackgroundTasksInfrastructure.On the Event Viewer (Local) tree, expand the nodes Applications and Services Logs > Microsoft > Windows > BackgroundTasksInfrastructure.

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

Consulte tambémSee Also

Testando aplicativos UWP com o Visual Studio Testing UWP apps with Visual Studio
Depurar aplicativos no Visual Studio Debug apps in Visual Studio
Ciclo de vida do aplicativo Application lifecycle
Iniciando, retomar e execução multitarefaLaunching, resuming, and multitasking