Как мога да симулирам прекратяване на моето приложение Metro?

Шаблоните за проекти по подразбиране на C# "Metro style" на VS2012 включват код в App.xaml.cs (в OnLaunched override), за да възстановите състоянието на приложението след спиране и прекратяване. Този код се изпълнява само когато LaunchActivatedEventArgs.PreviousExecutionState е Terminated , т.е. „Приложението беше прекратено, след като беше спряно.“

Как мога да принудя приложението ми да бъде спряно и прекратено, за да мога да тествам тази функция за спиране/възобновяване в приложението си?

Неща, които опитах и ​​не работят:

  • Ако използвам жеста „затваряне на приложението“ (плъзнете от горната част на екрана към долната), тогава PreviousExecutionState на следващото изпълнение е ClosedByUser.
  • Ако затворя приложението -- или с помощта на диспечера на задачите, или (ако съм отстранявал грешки) с бутона "стоп" на лентата с инструменти на VS -- тогава PreviousExecutionState на следващото изпълнение е NotRunning. Това е вярно, дори ако диспечерът на задачите е показал приложението като „Суспендирано“, преди да приключа задачата, така че очевидно е по-нюансирано от описанието на „прекратено след спиране“.
  • Бихте си помислили, че мога просто да се откажа от приложението си и след това да отворя много други приложения в стил Metro, докато приложението ми в крайна сметка бъде изхвърлено. Но дори и да отворя всяко едно приложение в стил Metro, което се доставя с Windows 8 Release Preview, това очевидно не е достатъчно напрежение в паметта, за да накара Windows да прекрати приложението ми. (Предполагам, че е по-малко вероятно Windows да прекрати приложение, което е в процес на отстраняване на грешки, така че стартирах приложението си от началния екран - без програма за отстраняване на грешки - преди да опитам това.)

Изглежда, че ако превключа от приложението си и пиша в прозорец на StackOverflow за няколко минути, приложението ми в крайна сметка ще бъде прекратено, така че може би има компонент, базиран на времето. Но ако трябва да чакам пет или десет минути всеки път, за да прекрати приложението ми, това е доста бавен цикъл на тестване.

Като се има предвид, че това е нещо, което разработчиците ще трябва да тестват, бихте си помислили, че ще има хубав, лесен начин за разработчиците да принудят приложение да спре и прекрати. Има ли някакво приложение за стрес тест, което идва с Visual Studio, което ще принуди достатъчно натиск върху паметта? Има ли някакъв елемент от менюто във Visual Studio, който ще принуди прекратяването на приложението ми? Как трябва да тестваме това?


person Joe White    schedule 24.06.2012    source източник
comment
Ако все пак искате да тествате поведението на приложението, което е изгонено, винаги можете да създадете 3 или 4 приложения „Здравей, свят“, които разпределят достатъчно памет, за да намалят ресурсите на системата ви.   -  person yms    schedule 28.06.2012


Отговори (4)


Във Visual Studio 2012, когато отстранявате грешки, има бутони „Suspend“, „Resume“ и „Suspend and Shutdown“. По подразбиране трябва да виждате бутоните, докато отстранявате грешки в приложението си. Вижте тази статия за повече информация относно жизнения цикъл на процеса на отстраняване на грешки.

въведете описание на изображението тук

person JP Alioto    schedule 24.06.2012
comment
Не мога да повярвам колко пъти го гледах и не го видях. Беше на втория ред от ленти с инструменти и по някаква причина окото ми продължаваше да прескача целия този втори ред, дори и с вашата екранна снимка, от която да отидете. Предполагам, че това е недостатъкът на новия външен вид без хром: няма визуални знаци, които да подсказват, че има още какво да се види. - person Joe White; 25.06.2012
comment
@JoeWhite Съгласен ... И аз бавно научавам новия интерфейс. Отнема време, за да намеря бутон, за който знаех точно къде са преди. :) - person JP Alioto; 25.06.2012
comment
За тези, които се чудят как да покажат тази лента с инструменти, отидете на View -› Toolbar -› Debug Location. - person Ucodia; 21.12.2012

Имах проблеми с намирането на контролата Suspend, защото VS не ми показваше втори ред ленти с инструменти. Както се оказа, това е в лентата с инструменти „Местоположение за отстраняване на грешки“. Уверете се, че тази лента с инструменти е включена и тогава трябва да можете да намерите контролата Suspend (и тя работи за решаване на проблема на OP).

person Paul McKee    schedule 28.06.2012

Ако не се показват по подразбиране, отидете на ИНСТРУМЕНТИ -> ПЕРСОНАЛИЗИРАНЕ и под раздела Ленти с инструменти поставете отметка в квадратчето, което казва „Местоположение за отстраняване на грешки“

person Roman Jaquez    schedule 15.03.2013