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

VS2012 по умолчанию С# "Стиль стиля Metro" включает код в App.xaml.cs(в OnLaunched override), чтобы восстановить состояние приложения после приостановки и завершения. Этот код запускается только тогда, когда LaunchActivatedEventArgs.PreviousExecutionState Terminated, т.е. "Приложение было прекращено после приостановки".

Как заставить приложение приостанавливаться и завершаться, поэтому я могу проверить эту функцию suspend/resume в своем приложении?

Вещи, которые я пробовал, которые не работают:

  • Если я использую жест "закрыть приложение" (перетащив верхнюю часть экрана на нижнюю), следующий прогон PreviousExecutionState будет ClosedByUser.
  • Если я убью приложение - либо с помощью диспетчера задач, либо (если бы я отлаживал) с помощью кнопки "stop" на панели инструментов VS, то следующий запуск PreviousExecutionState равен NotRunning. Это верно, даже если диспетчер задач показал приложение как "приостановленное" до того, как я закончил задачу, поэтому он явно более тонкий, чем описание "прекращено после приостановки".
  • Вы могли бы подумать, что я могу просто отказаться от своего приложения, а затем открыть множество других приложений в стиле Metro, пока мое приложение в итоге не выйдет из игры. Но даже если я открою каждое приложение Metro-стиля, которое поставляется с предварительным выпуском Windows 8, это, по-видимому, не достаточное давление памяти, чтобы заставить Windows прекратить мое приложение. (Я полагаю, что Windows вряд ли прекратит приложение, которое отлаживается, поэтому я запустил приложение с экрана "Пуск" - без отладчика - до того, как я попробовал это.)

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

Учитывая, что это то, что разработчикам придется тестировать, вы бы подумали, что для разработчика будет хороший и простой способ заставить приложение приостановить и завершить. Есть ли какое-то приложение для стресс-тестов, которое поставляется с Visual Studio, которое будет вынуждать достаточное количество памяти? Есть ли пункт меню в Visual Studio, который заставит прекратить мое приложение? Как мы должны проверить это?

Ответы

Ответ 1

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

enter image description here

Ответ 2

Мне не удалось найти элемент управления Suspend, потому что VS не показывал для меня вторую строку панелей инструментов. Как оказалось, это находится на панели инструментов "Debug Location". Убедитесь, что эта панель инструментов включена, а затем вы можете найти элемент управления Suspend (и он работает для решения проблемы OP).

Ответ 3

Если они по умолчанию не отображаются, перейдите в меню TOOLS → CUSTOMIZE и на вкладке "Панели инструментов" установите флажок "Местоположение отладки"