VS2012 的默认 C#“Metro 风格”项目模板包括 App.xaml.cs 中的代码(在OnLaunched
覆盖中),用于在挂起和终止后恢复应用程序状态。此代码仅在LaunchActivatedEventArgs.PreviousExecutionState
is时运行Terminated
,即“应用程序在暂停后终止”。
如何强制暂停和终止我的应用程序,以便我可以在我的应用程序中测试此暂停/恢复功能?
我试过的东西不起作用:
- 如果我使用“关闭应用程序”手势(从屏幕顶部拖动到底部),那么下一次运行
PreviousExecutionState
是ClosedByUser
. - 如果我终止应用程序——使用任务管理器,或者(如果我正在调试)使用 VS 工具栏上的“停止”按钮——那么下一次运行
PreviousExecutionState
是NotRunning
. 即使任务管理器在我结束任务之前将应用程序显示为“暂停”也是如此,因此显然它比“暂停后终止”的描述更加细微。 - 你会认为我可以从我的应用程序中切换出来,然后打开许多其他 Metro 风格的应用程序,直到我的应用程序最终被踢出。但是,即使我打开了 Windows 8 Release Preview 附带的每一个 Metro 风格的应用程序,这显然也不足以让 Windows 终止我的应用程序。(我认为 Windows 不太可能终止正在调试的应用程序,因此在尝试此操作之前,我从“开始”屏幕启动了我的应用程序 - 没有调试器。)
看来,如果我从我的应用程序切换并在 StackOverflow 窗口中输入几分钟,我的应用程序最终将被终止,所以它可能有一个基于时间的组件。但是,如果我每次都必须等待五到十分钟才能让我的应用程序终止,那将是一个相当缓慢的测试周期。
鉴于这是开发人员必须测试的内容,您会认为开发人员将有一种很好、简单的方法来强制应用程序暂停和终止。Visual Studio 中是否有某种压力测试应用程序会产生足够的内存压力?Visual Studio 中是否有一些菜单项会强制终止我的应用程序?我们应该如何测试这个?