Активация приостановки, возобновления и фоновых событий при отладке приложений UWP в Visual Studio

Если в данный момент отладка не выполняется, приложение Управление жизненным циклом процесса Windows управляет состоянием выполнения приложения: запуском, приостановкой, возобновлением и завершением работы приложения в ответ на действия пользователя и состояние устройства. При отладке Windows отключает эти события активации. В этом разделе описывается запуск этих событий в отладчике.

Кроме того, в этом разделе описывается, как отладить Фоновые задачи. Фоновые задачи позволяют выполнять определенные операции в фоновом процессе, даже если приложение не выполняется. Можно использовать отладчик, чтобы перевести приложение в режим отладки, а затем, не запуская пользовательский интерфейс, запустить фоновую задачу и начать ее отладку.

Дополнительные сведения об управлении жизненным циклом процессов и фоновых задачах см. в статье Запуск, возобновление и фоновые задачи.

События управления жизненным циклом процессов активации

Windows может приостановить работу приложения, если пользователь переходит из него или если Windows переключается в режим низкого электропотребления. Можно ответить на событие Suspending , чтобы сохранить соответствующие данные приложения и пользовательские данные в постоянном хранилище и чтобы освободить ресурсы. При переходе из состояния Приостановлено приложение возвращается в состояние Выполняется и продолжает работу с того момента, в котором оно было приостановлено. Можно ответить на событие Resuming , чтобы восстановить или обновить состояние приложения и получить назад ресурсы.

Хотя Windows пытается хранить в памяти как можно больше приостановленных приложений, Windows может завершить работу приложения, если ресурсов для хранения приложения в памяти недостаточно. Пользователь также может явно закрыть приложение. Специального события, указывающего, что пользователь закрыл приложение, не существует.

В отладчике Visual Studio можно вручную приостановить, возобновить и завершить работу приложения для отладки событий жизненного цикла процессов. Чтобы выполнить отладку события жизненного цикла процесса, выполните следующие действия.

  1. Задайте точку останова в обработчике события, которое необходимо отладить.

  2. Нажмите клавишу F5, чтобы запустить отладку.

  3. На панели инструментов Место отладки выберите событие, которое необходимо создать.

    Suspend, resume, terminate, and background tasks

    Команда Приостановить и завершить работу закрывает приложение и завершает сеанс отладки.

Активация фоновых задач

Любое приложение может зарегистрировать фоновую задачу, чтобы отвечать на некоторые системные события, даже если приложение не выполняется. Фоновые задачи не могут выполнять код, который непосредственно обновляет пользовательский интерфейс; вместо этого они показывают пользователю сведения об обновлениях плитки, обновлениях эмблемы и всплывающие уведомления. Дополнительные сведения см. в статье Поддержка приложения с помощью фоновых задач.

Можно активировать события, которые запускают фоновые задачи для приложения, из отладчика.

Примечание.

Отладчик может активировать только те события, которые не содержат данные, такие как события, указывающие на изменение состояния устройства. Фоновые задачи, которые требуют ввод данных пользователем или другие данные, необходимо активировать вручную.

Проще всего активировать событие фоновой задачи, когда приложение не запущено. Однако также поддерживается активация события в стандартном сеансе отладки.

Активация события фоновой задачи из стандартного сеанса отладки

  1. Задайте точку останова в коде фоновой задачи, который требуется отладить.

  2. Нажмите клавишу F5, чтобы запустить отладку.

  3. Из списка событий на панели инструментов Место отладки выберите фоновую задачу, которую требуется запустить.

    Suspend, resume, terminate, and background tasks

Активация фоновой задачи, когда приложение не выполняется

  1. Задайте точку останова в коде фоновой задачи, который требуется отладить.

  2. Откройте страницу свойств отладки для запускаемого проекта. В обозревателе решений выберите проект . В меню Отладка выберите пункт Свойства.

    Для проектов C++ разверните Свойства конфигурации, а затем выберите Отладка.

  3. Выполните одно из следующих действий:

    • Для проектов Visual C# и Visual Basic выберите Не запускать, а отлаживать мой код при открытии.

      C#/VB debug launch application property

    • Для проектов C++ выберите Нет из списка Запустить приложение.

      C++/VB Launch application debug property

  4. Нажмите клавишу F5 , чтобы перевести приложение в режим отладки. Обратите внимание, что в списке Процесс на панели инструментов Место отладки указывается имя пакета приложения, которое требуется указать в режиме отладки.

    Background task Process list

  5. Из списка событий на панели инструментов Место отладки выберите фоновую задачу, которую требуется запустить.

    Suspend, resume, terminate, and background tasks

Активация событий управления жизненным циклом процесса и фоновых задач из установленного приложения

Чтобы загрузить приложение, уже установленное в отладчик, используйте диалоговое окно Отладка установленного пакета приложения. Например, можно выполнить отладку приложения, установленного из Microsoft Store, или при наличии исходных файлов для приложения, но отсутствии для него проекта Visual Studio. С помощью диалогового окна Отладка установленного пакета приложения можно запустить приложение в режиме отладки на компьютере Visual Studio или удаленном устройстве либо настроить приложение для выполнения в режиме отладки, но не запускать его. Дополнительные сведения см. в статье Отладка установленного пакета приложения.

После загрузки приложения в отладчик можно использовать любую из описанных выше процедур.

Диагностика ошибок активации фоновой задачи

В журналах диагностики в окне просмотра событий Windows для фоновой инфраструктуры содержались подробные сведения о средствах, которые можно использовать для диагностики и устранения ошибок фоновой задачи. Чтобы просмотреть журнал, выполните следующие действия.

  1. Откройте приложение просмотра событий.

  2. В панели Действия выберите Просмотр и убедитесь, что установлен флажок Отобразить аналитический и отладочный журналы .

  3. На панели инструментов Просмотр событий (локальных) разверните узлы Журналы приложений и служб>Microsoft>Windows>BackgroundTasksInfrastructure.

  4. Выберите журнал Диагностические .