Compartir a través de


Desencadenar eventos de suspensión, reanudación y en segundo plano mientras se depuran aplicaciones UWP en Visual Studio

Mientras no depuras, Windows Process Lifetime Management (PLM) controla el estado de ejecución de tu aplicación, respondiendo a las acciones del usuario y al estado del dispositivo con acciones como iniciar, suspender, reanudar y finalizar la aplicación. Al depurar, Windows deshabilita estos eventos de activación. En este tema se describe cómo activar estos eventos en el depurador.

En este tema también se describe cómo depurar tareas en segundo plano. Las tareas en segundo plano permiten realizar determinadas operaciones en un proceso en segundo plano, incluso cuando la aplicación no se está ejecutando. Puede usar el depurador para colocar la aplicación en modo de depuración y, a continuación, sin iniciar la interfaz de usuario, iniciar y depurar la tarea en segundo plano.

Para obtener más información sobre la administración de la duración del proceso y las tareas en segundo plano, consulte Inicio, reanudación y multitarea.

Activar eventos de gestión del ciclo de vida del proceso

Windows puede suspender la aplicación cuando el usuario cambia de ella o cuando Windows entra en un estado de bajo consumo. Puede responder al Suspending evento para guardar los datos de aplicación y usuario pertinentes en el almacenamiento persistente y liberar recursos. Cuando se reanuda una aplicación desde el estado Suspendido , entra en estado En ejecución y continúa desde dónde estaba cuando se suspendió. Puede responder al Resuming evento para restaurar o actualizar el estado de la aplicación y reclamar recursos.

Aunque Windows intenta mantener tantas aplicaciones suspendidas en la memoria como sea posible, Windows puede finalizar la aplicación si no hay suficientes recursos para mantenerlo en la memoria. Un usuario también puede cerrar explícitamente la aplicación. No hay ningún evento especial para indicar que el usuario ha cerrado una aplicación.

En el depurador de Visual Studio, puede suspender, reanudar y finalizar manualmente las aplicaciones para depurar eventos de ciclo de vida del proceso. Para depurar un evento de ciclo de vida de proceso:

  1. Establezca un punto de interrupción en el controlador del evento que desea depurar.

  2. Presione F5 para iniciar la depuración.

  3. En la barra de herramientas Ubicación de depuración, elija el evento que desea activar.

    Suspender, reanudar, finalizar y tareas en segundo plano

    Suspender y finalizar cierra la aplicación y finaliza la sesión de depuración.

Desencadenar tareas en segundo plano

Cualquier aplicación puede registrar una tarea en segundo plano para responder a determinados eventos del sistema, incluso cuando la aplicación no se está ejecutando. Las tareas en segundo plano no pueden ejecutar código que actualice directamente la UI; en su lugar, muestran información al usuario con actualizaciones de mosaicos, actualizaciones de insignias y notificaciones emergentes. Para obtener más información, consulta Compatibilidad de la aplicación con tareas en segundo plano.

Puede desencadenar los eventos que inician tareas en segundo plano para tu aplicación desde el depurador.

Nota:

El depurador solo puede desencadenar los eventos que no contienen datos, como los eventos que indican un cambio de estado en el dispositivo. Tiene que desencadenar manualmente tareas en segundo plano que requieran la entrada del usuario u otros datos.

La manera más realista de desencadenar un evento de tarea en segundo plano es cuando la aplicación no se está ejecutando. Sin embargo, también se admite el desencadenamiento del evento en una sesión de depuración estándar.

Iniciar un evento de tarea de fondo desde una sesión de depuración estándar

  1. Establezca un punto de interrupción en el código de tarea en segundo plano que desea depurar.

  2. Presione F5 para iniciar la depuración.

  3. En la lista de eventos de la barra de herramientas Ubicación de depuración , elija la tarea en segundo plano que desea iniciar.

    Suspender, reanudar, finalizar y tareas en segundo plano

Desencadenar una tarea en segundo plano cuando la aplicación no se está ejecutando

  1. Establezca un punto de interrupción en el código de tarea en segundo plano que desea depurar.

  2. Abra la página de propiedades de depuración del proyecto de arranque. En el Explorador de soluciones, seleccione el proyecto. En el menú Depurar , elija Propiedades.

    En los proyectos de C++, expanda Propiedades de configuración y, a continuación, elija Depuración.

  3. Realice una de las acciones siguientes:

    • Para proyectos de Visual C# y Visual Basic, elija No iniciar, pero depurar mi código cuando se inicie.

      Propiedad para iniciar depuración en C#/VB DBG_CsVb_DontLaunchApp

    • En el caso de los proyectos de C++, elija No en la lista Iniciar aplicación .

      Propiedad de depuración DBG_CppJs_DontLaunchApp de la aplicación de inicio C++/VB

  4. Presione F5 para colocar la aplicación en modo de depuración. Tenga en cuenta que la lista Proceso de la barra de herramientas Ubicación de depuración muestra el nombre del paquete de la aplicación para indicar que está en modo de depuración.

    Lista de procesos en segundo plano

  5. En la lista de eventos de la barra de herramientas Ubicación de depuración , elija la tarea en segundo plano que desea iniciar.

    Suspender, reanudar, finalizar y tareas en segundo plano

Desencadenar eventos de administración de duración de procesos y tareas en segundo plano desde una aplicación instalada

Use el cuadro de diálogo Depurar paquete de aplicación instalado para cargar una aplicación que ya está instalada en el depurador. Por ejemplo, puede depurar una aplicación que se instaló desde Microsoft Store o depurar una aplicación cuando tengas los archivos de origen de la aplicación, pero no un proyecto de Visual Studio para la aplicación. El cuadro de diálogo Depurar paquete de aplicación instalado permite iniciar una aplicación en modo de depuración en el equipo de Visual Studio o en un dispositivo remoto, o bien establecer la aplicación para que se ejecute en modo de depuración, pero no iniciarla. Para obtener más información, consulte Depurar un paquete de aplicación instalado.

Una vez que la aplicación está cargada en el depurador, puede utilizar cualquiera de los procedimientos descritos anteriormente.

Diagnóstico de errores de activación de tareas en segundo plano

Los registros de diagnóstico del Visor de eventos de Windows para la infraestructura en segundo plano contienen información detallada que puede usar para diagnosticar y solucionar errores de tareas en segundo plano. Para ver el registro:

  1. Abra la aplicación Visor de eventos.

  2. En el panel Acciones , elija Ver y asegúrese de que mostrar registros analíticos y de depuración está activado.

  3. En el árbol Visor de eventos (local), expanda los nodos Applications and Services Logs>Microsoft>Windows>BackgroundTasksInfrastructure.

  4. Seleccione el registro de diagnóstico.