2012-06-24 22 views
15

Domyślne szablony projektu VS2012 w stylu C# "Metro style" obejmują kod w pliku App.xaml.cs (w override OnLaunched), aby przywrócić stan aplikacji po zawieszeniu i zakończeniu. Ten kod działa tylko wtedy, gdy LaunchActivatedEventArgs.PreviousExecutionState jest Terminated, tj. "Aplikacja została zakończona po zawieszeniu."Jak mogę zasymulować zakończenie mojej aplikacji Metro?

Jak mogę wymusić zawieszenie i zakończenie mojej aplikacji, aby przetestować tę funkcję zawieszenia/wznowienia w mojej aplikacji?

Czego próbowałem które nie działają:

  • Jeśli używam „Zamknij aplikację” gest (Drag od góry do dołu ekranu), to następny bieg na PreviousExecutionState jest ClosedByUser .
  • Jeśli zabiję aplikację - albo za pomocą Menedżera zadań, albo (jeśli byłem debugowany) za pomocą przycisku "stop" na pasku narzędzi VS - następna wersja to PreviousExecutionState to NotRunning. Jest to prawdą, nawet jeśli Menedżer zadań pokazywał aplikację jako "Zawieszone" przed zakończeniem zadania, więc wyraźnie jest bardziej zniuansowany niż opis "zakończony po zawieszeniu".
  • Pozwoliłoby myśleć Mogę po prostu wyłączyć z mojej aplikacji, a następnie otworzyć wiele innych aplikacji w stylu Metro, aż moja aplikacja zostanie ostatecznie wyrzucony. Ale nawet jeśli otworzę każdą aplikację w stylu Metro, która jest dostarczana z Windows 8 Release Preview, to najwyraźniej za mało pamięci, aby Windows zakończył moją aplikację. (Zakładam, że system Windows będzie mniej skłonny do zakończenia debugowanej aplikacji, więc uruchomiłem swoją aplikację na ekranie Start - bez debuggera - zanim spróbowałem.)

Wygląda na to, że jeśli Przełączam się z mojej aplikacji i wpisuję w okno StackOverflow na kilka minut, że moja aplikacja zostanie w końcu zakończona, więc być może jest na to jakiś składnik oparty na czasie. Ale jeśli muszę czekać pięć lub dziesięć minut za każdym razem, gdy moja aplikacja się zakończy, jest to dość powolny cykl testowy.

Biorąc pod uwagę, że jest to coś, co programiści będą musieli przetestować, można by pomyśleć, że to dobry i łatwy sposób na wymuszenie wstrzymania i zakończenia aplikacji. Czy jest jakaś aplikacja do testowania warunków skrajnych dostarczana z Visual Studio, która wymusi wystarczającą presję pamięci? Czy istnieje jakiś element menu w Visual Studio, który wymusi zakończenie mojej aplikacji? Jak mamy to przetestować?

+0

Jeśli nadal chcesz przetestować zachowanie aplikacji jako „wykluczony”, zawsze można utworzyć 3 lub 4 hello aplikacje świata, które przydzielić „mało pamięci”, aby uzyskać twój system ma mało zasobów. – yms

Odpowiedz

27

W Visual Studio 2012 podczas debugowania znajdują się przyciski "Wstrzymaj", "Wznów" i "Wstrzymaj i Zamknij". Domyślnie powinieneś zobaczyć przyciski podczas debugowania aplikacji. Zobacz this article, aby uzyskać więcej informacji na temat cyklu życia debugowania.

enter image description here

+1

Nie mogę uwierzyć, ile razy patrzyłem na to i nie widziałem tego. To było w * drugim rzędzie * pasków narzędzi i z jakiegoś powodu moje oko przeskakiwało w prawo przez cały drugi rząd, nawet z twoim zrzutem ekranu. Zgadnij, że to jest wadą nowego "chromowanego" wyglądu: brak wizualnych wskazówek sugerujących, że jest na co popatrzeć. –

+0

@JoeWhite Zgadzam się ... Powoli też uczę się nowego interfejsu. Potrzeba czasu, aby znaleźć przycisk, który znałem dokładnie tam, gdzie był wcześniej. :) –

+7

Dla tych, którzy zastanawiają się, jak wyświetlić ten pasek narzędzi, przejdź do Widok -> Pasek narzędzi -> Lokalizacja debugowania. – Ucodia

6

miałem problem ze znalezieniem kontrolę wstrzymania bo VS nie pokazywał drugi rząd pasków dla mnie. Jak się okazuje, jest to na pasku narzędzi "Lokalizacja debugowania". Upewnij się, że masz włączony ten pasek narzędzi, a następnie powinieneś być w stanie znaleźć kontrolę Wstrzymania (i działa ona w celu rozwiązania problemu OP).

3

Jeśli nie wykazują one domyślnie, przejdź do Narzędzia -> Dostosuj, a na karcie Paski narzędzi, zaznacz pole wyboru „Debug Location”

Powiązane problemy