Attivare eventi di sospensione, ripresa e in background durante il debug di app UWP in Visual Studio

Quando non esegui il debug, Windows Process Lifetime Management (PLM) controlla lo stato di esecuzione dell'app, cioè avvio, sospensione, ripresa e terminazione, in risposta alle azioni dell'utente e allo stato del dispositivo. Quando esegui il debug, Windows disabilita questi eventi di attivazione. In questo argomento viene descritto come generare tali eventi nel debugger.

Viene inoltre descritto come eseguire il debug di attività in background. Le attività in background consentono di eseguire determinate operazioni in un processo in background, anche quando l'app non è in esecuzione. Puoi utilizzare il debugger per attivare la modalità di debug dell'app, quindi avviare l'attività in background ed eseguire il debug, senza avviare l'interfaccia utente.

Per altre informazioni sulla gestione della durata dei processi e sulle attività in background, vedere Avvio, ripresa e multitasking.

Attivare gli eventi di Process Lifetime Management

Windows può sospendere l'app quando l'utente passa da esso o quando Windows entra in uno stato a basso consumo. Puoi rispondere all'evento Suspending per salvare i dati utente e dell'app rilevanti in un archivio permanente e per liberare risorse. Quando un'app viene riattivata dallo stato Sospeso , passa allo stato In esecuzione e continua dal punto in cui si trovava al momento della sospensione. Puoi rispondere all'evento Resuming per ripristinare o aggiornare lo stato dell'app e recuperare le risorse.

Anche se Windows tenta di mantenere in memoria quante più app sospese possibile, può terminare un'app se non sono disponibili risorse sufficienti per mantenerla in memoria. Un utente può anche chiudere in modo esplicito l'app. Non esiste un evento speciale per indicare che l'utente ha chiuso un'app.

Nel debugger di Visual Studio, puoi sospendere, riprendere e terminare manualmente le app per eseguire il debug degli eventi relativi al ciclo di vita di elaborazione. Per eseguire il debug di un evento relativo al ciclo di vita di elaborazione:

  1. Impostare un punto di interruzione nel gestore dell'evento di cui si vuole eseguire il debug.

  2. Premere F5 per avviare il debug.

  3. Sulla barra degli strumenti Posizione di debug scegli l'evento da generare:

    Suspend, resume, terminate, and background tasks

    Sospendere e terminare chiude l'app e termina la sessione di debug.

Attivare attività in background

Qualsiasi app può registrare un'attività in background per rispondere a determinati eventi di sistema, anche quando l'app non è in esecuzione. Le attività in background non possono eseguire codice che aggiorna direttamente l'interfaccia utente. Visualizzano invece informazioni all'utente con aggiornamenti di riquadri, aggiornamenti di notifiche e notifiche di tipo avviso popup. Per altre informazioni, vedere Supporto dell'app con attività in background.

Puoi attivare eventi che avviano attività in background per l'app dal debugger.

Nota

Il debugger può attivare solo gli eventi che non contengono dati, come gli eventi che segnalano una modifica dello stato del dispositivo. Devi attivare manualmente le attività in background che richiedono l'input dell'utente o altri dati.

Il modo più realistico di generare un evento di attività in background si verifica quando l'app non è in esecuzione. È tuttavia supportata anche l'attivazione dell'evento in una sessione di debug standard.

Attivare un evento di attività in background da una sessione di debug standard

  1. Imposta un punto di interruzione nel codice dell'attività in background di cui desideri eseguire il debug.

  2. Premere F5 per avviare il debug.

  3. Dall'elenco degli eventi sulla barra degli strumenti Posizione di debug scegli l'attività in background che vuoi avviare.

    Suspend, resume, terminate, and background tasks

Attivare un'attività in background quando l'app non è in esecuzione

  1. Imposta un punto di interruzione nel codice dell'attività in background di cui desideri eseguire il debug.

  2. Apri la pagina delle proprietà di debug per il progetto di avvio. In Esplora soluzioni selezionare il progetto. Scegli Proprietà dal menu Debug.

    Per i progetti C++, espandere Proprietà di configurazione e quindi scegliere Debug.

  3. Esegui una delle operazioni seguenti:

    • Per i progetti Visual C# e Visual Basic, scegli Non eseguire il codice utente, ma eseguine il debug all'avvio.

      C#/VB debug launch application property

    • Per i progetti C++, scegliere No dall'elenco Avvia applicazione .

      C++/VB Launch application debug property

  4. Premi F5 per mettere l'app in modalità debug. Nota che nell'elenco Processo sulla barra degli strumenti Posizione di debug è visualizzato il nome del pacchetto dell'app per indicare che sei in modalità debug.

    Background task Process list

  5. Dall'elenco degli eventi sulla barra degli strumenti Posizione di debug scegli l'attività in background che vuoi avviare.

    Suspend, resume, terminate, and background tasks

Attivare gli eventi di Process Lifecycle Management e le attività in background da un'app installata

Usare la finestra di dialogo Debug pacchetto app installato per caricare un'app già installata nel debugger. Ad esempio, potresti eseguire il debug di un'app installata da Microsoft Store o di eseguire il debug di un'app quando hai i file di origine per l'app, ma non un progetto di Visual Studio per l'app. La finestra di dialogo Debug pacchetto app installato consente di avviare un'app in modalità di debug nel computer di Visual Studio o in un dispositivo remoto oppure di impostare l'app per l'esecuzione in modalità di debug, ma non avviarla. Per altre informazioni, vedere Eseguire il debug di un pacchetto di app installato.

Una volta caricata l'app nel debugger, puoi utilizzare una qualsiasi tra le procedure descritte sopra.

Diagnostica degli errori di attivazione di attività in background

I log di diagnostica in Windows Visualizzatore eventi per l'infrastruttura in background contengono informazioni dettagliate che è possibile usare per diagnosticare e risolvere gli errori delle attività in background. Per visualizzare il log:

  1. Aprire l'applicazione Visualizzatore eventi.

  2. Nel riquadro Azioni scegli Visualizza e verificare che Visualizza registri analitici e di debug sia selezionata.

  3. Sulla barra degli strumenti Visualizzatore eventi (locale) espandi i nodi Registri applicazioni e servizi>Microsoft>Windows>BackgroundTasksInfrastructure.

  4. Scegli il log Diagnostica .