Acionar eventos de suspensão, de retomada e de segundo plano ao depurar aplicativos UWP no Visual Studio

Quando você não está depurando, o Gerenciamento do Tempo de Vida do Processo (PLM) do Windows 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 ao estado do dispositivo. Quando se está a depurar, o Windows desativa estes eventos de ativação. Este tópico descreve como acionar estes eventos no depurador.

Este tópico também descreve como depurar tarefas em segundo plano. 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. Você pode usar o depurador para colocar seu aplicativo no modo de depuração e, em seguida, sem iniciar a interface do usuário, iniciar e depurar a tarefa em segundo plano.

Para obter mais informações sobre o Gerenciamento do Tempo de Vida do Processo e tarefas em segundo plano, consulte Iniciando, retomando e multitarefa.

Acionar eventos de gestão do ciclo de vida do processo

O Windows pode suspender seu aplicativo quando o usuário se afasta dele ou quando o Windows entra em um estado de baixo consumo de energia. Você pode responder ao evento para salvar dados relevantes do Suspending aplicativo e do usuário no armazenamento persistente e liberar recursos. Quando um aplicativo é retomado do estado Suspenso , ele entra no estado Em execução e continua de onde estava quando foi suspenso. Você pode responder ao evento para restaurar ou atualizar o Resuming estado do aplicativo e recuperar recursos.

Embora o Windows tente manter o maior número possível de aplicativos suspensos na memória, o Windows pode encerrar seu aplicativo se não houver recursos suficientes para mantê-lo na memória. Um usuário também pode fechar explicitamente seu aplicativo. Não há nenhum evento especial para indicar que o usuário fechou um aplicativo.

No depurador do Visual Studio, você pode suspender, retomar e encerrar manualmente seus aplicativos para depurar eventos do ciclo de vida do processo. Para depurar um evento do ciclo de vida do processo:

  1. Defina um ponto de interrupção no manipulador do evento que você deseja depurar.

  2. Pressione F5 para iniciar a depuração.

  3. Na barra de ferramentas Local de Depuração, escolha o evento que deseja disparar:

    Suspender, retomar, encerrar e tarefas em segundo plano

    Suspender e encerrar fecha a aplicação e finaliza a sessão de depuração.

Acionar tarefas em segundo plano

Qualquer aplicativo pode registrar uma tarefa em segundo plano para responder a determinados eventos do sistema, mesmo quando o aplicativo não está em execução. As tarefas em segundo plano não podem executar código que atualize diretamente a interface do utilizador; em vez disso, estas mostram informações ao utilizador com atualizações de mosaico, atualizações de selo e notificações 'toast'. Para obter mais informações, consulte Suporte ao seu aplicativo com tarefas em segundo plano.

Você pode acionar os eventos que iniciam tarefas em segundo plano para seu aplicativo a partir do depurador.

Observação

O depurador pode acionar apenas os eventos que não contêm dados, como eventos que indicam uma mudança de estado no dispositivo. Você precisa acionar manualmente tarefas em segundo plano que exigem a entrada do usuário ou outros dados.

A maneira mais realista de disparar um evento de tarefa em segundo plano é quando seu aplicativo não está em execução. No entanto, o acionamento do evento em uma sessão de depuração padrão também é suportado.

Ativar um evento de tarefa em segundo plano a partir de uma sessão de depuração padrão

  1. Defina um ponto de interrupção no código da tarefa em segundo plano que você deseja depurar.

  2. Pressione F5 para iniciar a depuração.

  3. Na lista de eventos na barra de ferramentas Local de Depuração , escolha a tarefa em segundo plano que deseja iniciar.

    Suspender, retomar, encerrar e tarefas em segundo plano

Iniciar uma tarefa em segundo plano quando a aplicação não estiver em execução

  1. Defina um ponto de interrupção no código da tarefa em segundo plano que você deseja depurar.

  2. Abra a página de propriedades de debug para o projeto de arranque. No Gerenciador de Soluções, selecione o projeto. No menu Depurar , escolha Propriedades.

    Para projetos C++, expanda Propriedades de configuração e escolha Depuração.

  3. Proceda de uma das seguintes formas:

    • Para projetos do Visual C# e Visual Basic, escolha Não inicie o aplicativo, mas depure o meu código quando ele começar

      Propriedade do aplicativo de inicialização de depuração C#/VB

    • Para projetos C++, escolha Não na lista Iniciar aplicativo .

      Propriedade de depuração da aplicação de lançamento C++/VB

  4. Pressione F5 para colocar o aplicativo no modo de depuração. 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.

    Tarefa em segundo plano Lista de processos

  5. Na lista de eventos na barra de ferramentas Local de Depuração , escolha a tarefa em segundo plano que deseja iniciar.

    Suspender, retomar, encerrar e tarefas em segundo plano

Acionar eventos de gerenciamento do tempo de vida do processo e tarefas em segundo plano a partir de um aplicativo instalado

Use a caixa de diálogo Depurar Pacote de Aplicativo Instalado para carregar um aplicativo que já está instalado no depurador. Por exemplo, você pode depurar um aplicativo que foi instalado da 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. A caixa de diálogo Depurar Pacote de Aplicativo Instalado permite iniciar um aplicativo no modo de depuração na máquina do Visual Studio ou em um dispositivo remoto, ou definir o aplicativo para ser executado no modo de depuração, mas não iniciá-lo. Para obter mais informações, consulte Depurar um pacote de aplicativo instalado.

Depois que o aplicativo for carregado no depurador, você poderá usar qualquer um dos procedimentos descritos acima.

Diagnosticando erros de ativação de tarefas em segundo plano

Os logs de diagnóstico no Visualizador de Eventos do Windows para a infraestrutura em segundo plano contêm informações detalhadas que você pode usar para diagnosticar e solucionar erros de tarefas em segundo plano. Para visualizar o registo:

  1. Abra o aplicativo Visualizador de Eventos.

  2. No painel Ações , escolha Exibir e verifique se Mostrar Logs Analíticos e de Depuração está marcado.

  3. Na árvore Visualizador de Eventos (Local), expanda os nós Logs de Aplicações e Serviços>Microsoft>Windows>BackgroundTasksInfrastructure.

  4. Escolha o log de diagnóstico .