Memicu peristiwa tangguhkan, lanjutkan, dan latar belakang saat menelusuri kesalahan aplikasi UWP di Visual Studio

Saat Anda tidak melakukan penelusuran kesalahan, Windows Process Lifetime Management (PLM) mengontrol status eksekusi aplikasi Anda—memulai, menangguhkan, melanjutkan, dan mengakhiri aplikasi sebagai respons terhadap tindakan pengguna dan status perangkat. Saat Anda melakukan penelusuran kesalahan, Windows menonaktifkan peristiwa aktivasi ini. Topik ini menjelaskan cara mengaktifkan peristiwa ini di debugger.

Topik ini juga menjelaskan cara men-debug Proses di latar belakang. Proses di latar belakang memungkinkan Anda melakukan operasi tertentu dalam proses latar belakang, bahkan saat aplikasi Anda tidak berjalan. Anda dapat menggunakan debugger untuk menempatkan aplikasi Anda dalam mode debug dan kemudian— tanpa memulai UI—memulai dan men-debug proses di latar belakang.

Untuk informasi selengkapnya tentang Manajemen Masa Pakai Proses dan proses di latar belakang, lihat Meluncurkan, melanjutkan, dan multitugas.

Memicu peristiwa Manajemen Masa Pakai Proses

Windows dapat menangguhkan aplikasi Anda saat pengguna beralih dari aplikasi tersebut atau saat Windows memasuki status berdaya rendah. Anda dapat menanggapi peristiwa Suspending untuk menyimpan aplikasi dan data pengguna yang relevan ke penyimpanan persisten dan untuk merilis sumber daya. Saat aplikasi dilanjutkan dari status Ditangguhkan, aplikasi memasuki status Berjalan dan berlanjut dari tempat aplikasi ditangguhkan. Anda dapat menanggapi peristiwa Resuming untuk memulihkan atau merefresh status aplikasi dan mengklaim kembali sumber daya.

Meskipun Windows mencoba menyimpan aplikasi yang ditangguhkan sebanyak mungkin dalam memori, Windows dapat menghentikan aplikasi Anda jika tidak ada cukup sumber daya untuk menyimpannya dalam memori. Pengguna juga dapat secara eksplisit menutup aplikasi Anda. Tidak ada peristiwa khusus untuk menunjukkan bahwa pengguna telah menutup aplikasi.

Dalam debugger Visual Studio, Anda dapat menangguhkan, melanjutkan, dan mengakhiri aplikasi secara manual untuk men-debug peristiwa siklus hidup proses. Untuk men-debug peristiwa siklus hidup proses:

  1. Atur titik henti di penanganan peristiwa yang ingin Anda debug.

  2. Tekan F5 untuk mulai penelusuran kesalahan.

  3. Pada toolbar Lokasi Debug, pilih peristiwa yang ingin Anda aktifkan:

    Suspend, resume, terminate, and background tasks

    Menangguhkan dan mengakhiri penutupan aplikasi dan mengakhiri sesi debug.

Memicu proses di latar belakang

Aplikasi apa pun dapat mendaftarkan tugas latar belakang untuk merespons peristiwa sistem tertentu, bahkan ketika aplikasi tidak berjalan. Tugas latar belakang tidak dapat menjalankan kode yang secara langsung memperbarui UI; sebaliknya, mereka menampilkan informasi kepada pengguna dengan pembaruan petak peta, pembaruan lencana, dan pemberitahuan toast. Untuk informasi selengkapnya, lihat Mendukung aplikasi Anda dengan proses di latar belakang.

Anda dapat memicu peristiwa yang memulai proses di latar belakang untuk aplikasi Anda dari debugger.

Catatan

Debugger hanya dapat memicu peristiwa yang tidak berisi data, seperti peristiwa yang menunjukkan perubahan status di perangkat. Anda harus memicu proses di latar belakang secara manual yang memerlukan input pengguna atau data lainnya.

Cara paling realistis untuk memicu peristiwa proses di latar belakang adalah saat aplikasi Anda tidak berjalan. Namun, memicu peristiwa dalam sesi penelusuran kesalahan standar juga didukung.

Memicu peristiwa proses di latar belakang dari sesi debug standar

  1. Atur titik henti di kode proses di latar belakang yang ingin Anda debug.

  2. Tekan F5 untuk mulai penelusuran kesalahan.

  3. Dari daftar peristiwa pada toolbar Lokasi Debug, pilih proses di latar belakang yang ingin Anda mulai.

    Suspend, resume, terminate, and background tasks

Memicu proses di latar belakang saat aplikasi tidak berjalan

  1. Atur titik henti di kode proses di latar belakang yang ingin Anda debug.

  2. Buka halaman properti debug untuk proyek awal. Di Penjelajah Solusi, pilih proyek. Pada menu Debug, pilih Properti.

    Untuk proyek C++, perluas Properti Konfigurasi lalu pilih Penelusuran Kesalahan.

  3. Lakukan salah satu langkah berikut:

    • Untuk Visual C# dan proyek Visual Basic, pilih Jangan luncurkan, tetapi debug kode saya saat dimulai

      C#/VB debug launch application property

    • Untuk proyek C++, pilih Tidak dari daftar Luncurkan aplikasi.

      C++/VB Launch application debug property

  4. Tekan F5 untuk menjalankan aplikasi dalam mode debug. Perhatikan daftar Proses pada toolbar Lokasi Debug menampilkan nama paket aplikasi untuk menunjukkan bahwa Anda berada dalam mode debug.

    Background task Process list

  5. Dari daftar peristiwa pada toolbar Lokasi Debug, pilih proses di latar belakang yang ingin Anda mulai.

    Suspend, resume, terminate, and background tasks

Memicu peristiwa Manajemen Masa Pakai Proses dan proses di latar belakang dari aplikasi yang diinstal

Gunakan kotak dialog Paket Aplikasi Terinstal Debug untuk memuat aplikasi yang sudah diinstal ke debugger. Misalnya, Anda dapat men-debug aplikasi yang diinstal dari Microsoft Store, atau men-debug aplikasi saat Anda memiliki file sumber untuk aplikasi, tetapi bukan proyek Visual Studio untuk aplikasi. Kotak dialog Paket Aplikasi Terinstal Debug memungkinkan Anda memulai aplikasi dalam mode debug di komputer Visual Studio atau di perangkat jarak jauh, atau mengatur aplikasi agar berjalan dalam mode debug tetapi tidak memulainya. Untuk informasi selengkapnya, lihat Men-debug paket aplikasi yang diinstal.

Setelah aplikasi dimuat ke debugger, Anda dapat menggunakan salah satu prosedur yang dijelaskan di atas.

Mendiagnosis kesalahan aktivasi proses di latar belakang

Log diagnostik di Windows Pemantau Peristiwa untuk infrastruktur latar belakang berisi informasi terperinci yang dapat Anda gunakan untuk mendiagnosis dan memecahkan masalah kesalahan proses di latar belakang. Untuk melihat log:

  1. Buka aplikasi Pemantau Peristiwa.

  2. Di panel Tindakan, pilih Tampilkan dan pastikan Tampilkan Log Analitik dan Debug dicentang.

  3. Pada pohon Pemantau Peristiwa (Lokal), perluas nodeLog Aplikasi dan Layanan>Microsoft>Windows>BackgroundTasksInfrastructure.

  4. Pilih log Diagnostik.