Udostępnij za pośrednictwem


Wyzwalanie wstrzymywanie, wznawianie i zdarzenia w tle podczas debugowania aplikacji platformy UWP w programie Visual Studio

Jeśli nie debugujesz, zarządzanie okresem istnienia procesów systemu Windows (PLM) kontroluje stan wykonywania aplikacji — uruchamianie, zawieszanie, wznawianie i kończenie aplikacji w odpowiedzi na akcje użytkownika i stan urządzenia. Podczas debugowania system Windows wyłącza te zdarzenia aktywacji. W tym temacie opisano sposób wyzwalania tych zdarzeń w debugerze.

W tym temacie opisano również sposób debugowania zadań w tle. Zadania w tle umożliwiają wykonywanie pewnych operacji w trakcie procesu w tle, nawet jeśli aplikacja nie jest uruchomiona. Debuger umożliwia umieszczenie aplikacji w trybie debugowania, a następnie — bez uruchamiania interfejsu użytkownika — uruchamianie i debugowanie zadania w tle.

Aby uzyskać więcej informacji na temat zarządzania okresem istnienia procesu i zadań w tle, zobacz Uruchamianie, wznawianie i wielozadaniowość.

Wyzwalanie zdarzeń zarządzania okresem istnienia procesu

System Windows może zawiesić aplikację, gdy użytkownik odejdzie od niej lub gdy system Windows przejdzie w stan niskiego zasilania. Możesz odpowiedzieć na Suspending zdarzenie, aby zapisać odpowiednie dane aplikacji i użytkownika w magazynie trwałym i zwolnić zasoby. Gdy aplikacja zostanie wznowiona ze stanu Wstrzymano , przechodzi w stan Uruchomiono i kontynuuje działanie, z którego została wstrzymana. Możesz odpowiedzieć na zdarzenie, Resuming aby przywrócić lub odświeżyć stan aplikacji i odzyskać zasoby.

Mimo że system Windows próbuje zachować jak najwięcej zawieszonych aplikacji w pamięci, system Windows może zakończyć działanie aplikacji, jeśli nie ma wystarczającej ilości zasobów, aby zachować ją w pamięci. Użytkownik może również jawnie zamknąć aplikację. Nie ma specjalnego zdarzenia wskazującego, że użytkownik zamknął aplikację.

W debugerze programu Visual Studio możesz ręcznie wstrzymać, wznowić i zakończyć działanie aplikacji w celu debugowania zdarzeń cyklu życia procesu. Aby debugować zdarzenie cyklu życia procesu:

  1. Ustaw punkt przerwania w procedurze obsługi zdarzenia, które chcesz debugować.

  2. Naciśnij klawisz F5, aby uruchomić debugowanie.

  3. Na pasku narzędzi Lokalizacja debugowania wybierz zdarzenie, które chcesz uruchomić:

    Suspend, resume, terminate, and background tasks

    Wstrzymywanie i kończenie działania powoduje zamknięcie aplikacji i zakończenie sesji debugowania.

Wyzwalanie zadań w tle

Każda aplikacja może zarejestrować zadanie w tle, aby reagować na określone zdarzenia systemowe, nawet jeśli aplikacja nie jest uruchomiona. Zadania w tle nie mogą uruchamiać kodu, który bezpośrednio aktualizuje interfejs użytkownika; zamiast tego wyświetlają użytkownikowi informacje z aktualizacjami kafelków, aktualizacjami znaczków i wyskakujące powiadomieniami. Aby uzyskać więcej informacji, zobacz Obsługa aplikacji z zadaniami w tle.

Zdarzenia, które uruchamiają zadania w tle dla aplikacji, można wyzwolić z debugera.

Uwaga

Debuger może wyzwalać tylko te zdarzenia, które nie zawierają danych, takich jak zdarzenia wskazujące zmianę stanu na urządzeniu. Musisz ręcznie wyzwolić zadania w tle, które wymagają danych wejściowych użytkownika lub innych danych.

Najbardziej realistycznym sposobem wyzwolenia zdarzenia zadania w tle jest to, że aplikacja nie jest uruchomiona. Jednak wyzwalanie zdarzenia w standardowej sesji debugowania jest również obsługiwane.

Wyzwalanie zdarzenia zadania w tle z standardowej sesji debugowania

  1. Ustaw punkt przerwania w kodzie zadania w tle, który chcesz debugować.

  2. Naciśnij klawisz F5, aby uruchomić debugowanie.

  3. Z listy zdarzeń na pasku narzędzi Lokalizacja debugowania wybierz zadanie w tle, które chcesz uruchomić.

    Suspend, resume, terminate, and background tasks

Wyzwalanie zadania w tle, gdy aplikacja nie jest uruchomiona

  1. Ustaw punkt przerwania w kodzie zadania w tle, który chcesz debugować.

  2. Otwórz stronę właściwości debugowania dla projektu startowego. W Eksplorator rozwiązań wybierz projekt. W menu Debugowanie wybierz pozycję Właściwości.

    W przypadku projektów języka C++ rozwiń węzeł Właściwości konfiguracji, a następnie wybierz pozycję Debugowanie.

  3. Wykonaj jedną z następujących czynności:

    • W przypadku projektów Visual C# i Visual Basic wybierz pozycję Nie uruchamiaj, ale debuguj mój kod po uruchomieniu

      C#/VB debug launch application property

    • W przypadku projektów języka C++ wybierz pozycję Nie z listy Uruchom aplikację .

      C++/VB Launch application debug property

  4. Naciśnij klawisz F5 , aby umieścić aplikację w trybie debugowania. Zwróć uwagę na listę Proces na pasku narzędzi Lokalizacja debugowania wyświetla nazwę pakietu aplikacji, aby wskazać, że jesteś w trybie debugowania.

    Background task Process list

  5. Z listy zdarzeń na pasku narzędzi Lokalizacja debugowania wybierz zadanie w tle, które chcesz uruchomić.

    Suspend, resume, terminate, and background tasks

Wyzwalanie zdarzeń zarządzania okresem istnienia procesu i zadań w tle z zainstalowanej aplikacji

Okno dialogowe Debugowanie zainstalowanego pakietu aplikacji umożliwia załadowanie aplikacji, która jest już zainstalowana w debugerze. Możesz na przykład debugować aplikację zainstalowaną ze sklepu Microsoft Store lub debugować aplikację, gdy masz pliki źródłowe aplikacji, ale nie projekt programu Visual Studio dla aplikacji. Okno dialogowe Debugowanie zainstalowanego pakietu aplikacji umożliwia uruchomienie aplikacji w trybie debugowania na maszynie programu Visual Studio lub na urządzeniu zdalnym albo skonfigurowanie aplikacji do uruchamiania w trybie debugowania, ale nie uruchamiania. Aby uzyskać więcej informacji, zobacz Debugowanie zainstalowanego pakietu aplikacji.

Po załadowaniu aplikacji do debugera można użyć dowolnej procedury opisanej powyżej.

Diagnozowanie błędów aktywacji zadań w tle

Dzienniki diagnostyczne w systemie Windows Podgląd zdarzeń dla infrastruktury w tle zawierają szczegółowe informacje, których można użyć do diagnozowania i rozwiązywania problemów z błędami zadań w tle. Aby wyświetlić dziennik:

  1. Otwórz aplikację Podgląd zdarzeń.

  2. W okienku Akcje wybierz pozycję Widok i upewnij się, że zaznaczono pole Wyboru Pokaż dzienniki analityczne i Debugowanie.

  3. W drzewie Podgląd zdarzeń (lokalnym) rozwiń węzły Dzienniki aplikacji i usług Microsoft>>Windows>BackgroundTasksInfrastructure.

  4. Wybierz dziennik diagnostyczny.