Шаблоните за проекти по подразбиране на 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, който ще принуди прекратяването на приложението ми? Как трябва да тестваме това?