【问题标题】:How can I simulate my Metro app being terminated?如何模拟我的 Metro 应用程序被终止?
【发布时间】:2012-06-24 17:50:47
【问题描述】:

VS2012 的默认 C#“Metro 风格”项目模板包含 App.xaml.cs 中的代码(在 OnLaunched 覆盖中),用于在挂起和终止后恢复应用程序状态。此代码仅在 LaunchActivatedEventArgs.PreviousExecutionStateTerminated 时运行,即“应用程序在暂停后终止。”

如何强制暂停和终止我的应用,以便在我的应用中测试此暂停/恢复功能?

我尝试过但不起作用的方法:

  • 如果我使用“关闭应用”手势(从屏幕顶部拖动到底部),那么下一次运行的PreviousExecutionStateClosedByUser
  • 如果我终止应用程序——使用任务管理器,或者(如果我正在调试)使用 VS 工具栏上的“停止”按钮——那么下一次运行的 PreviousExecutionStateNotRunning。即使任务管理器在我结束任务之前将应用程序显示为“已暂停”也是如此,因此显然它比“暂停后终止”的描述更加细致入微。
  • 您会认为我可以从我的应用程序中切换出来,然后打开许多其他 Metro 风格的应用程序,直到我的应用程序最终被踢出。但是,即使我打开了 Windows 8 Release Preview 附带的每一个 Metro 风格的应用程序,这显然也不足以让 Windows 终止我的应用程序。 (我认为 Windows 不太可能终止正在调试的应用程序,因此在尝试此操作之前,我从“开始”屏幕启动了我的应用程序 - 没有调试器。)

看起来,如果我离开我的应用程序并在 StackOverflow 窗口中输入几分钟,我的应用程序最终会被终止,所以它可能有一个基于时间的组件。但是,如果我每次都必须等待五到十分钟让我的应用程序终止,那将是一个相当缓慢的测试周期。

鉴于这是开发人员必须测试的内容,您会认为开发人员有一种很好、简单的方法可以强制应用暂停和终止。 Visual Studio 中是否有某种压力测试应用程序会产生足够的内存压力? Visual Studio 中是否有一些菜单项会强制终止我的应用程序?我们应该如何测试这个?

【问题讨论】:

  • 如果您仍想测试被“踢出”的应用程序的行为,您始终可以创建 3 或 4 个 hello world 应用程序来分配“足够的内存”以使您的系统资源不足。

标签: windows-8 windows-runtime winrt-xaml


【解决方案1】:

在 Visual Studio 2012 中,当您进行调试时,有“暂停”、“恢复”和“暂停和关闭”按钮。默认情况下,您应该在调试应用程序时看到这些按钮。有关调试进程生命周期的更多信息,请参阅this article

【讨论】:

  • 我不敢相信我看了多少次却没有看到。它在工具栏的第二行上,出于某种原因,我的眼睛一直跳过整个第二行,即使你的屏幕截图要从中删除。猜猜这就是新的“无铬”外观的缺点:没有视觉提示表明还有更多可看的东西。
  • @JoeWhite 同意...我也在慢慢学习新界面。找到我确切知道它们以前在哪里的按钮需要时间。 :)
  • 如果您想知道如何显示此工具栏,请转到查看 -> 工具栏 -> 调试位置。
【解决方案2】:

我找不到 Suspend 控件,因为 VS 没有为我显示第二行工具栏。事实证明,这是在“调试位置”工具栏上。确保你打开了这个工具栏,然后你应该能够找到 Suspend 控件(它确实可以解决 OP 的问题)。

【讨论】:

    【解决方案3】:

    如果默认情况下不显示,请转到工具 -> 自定义,然后在工具栏选项卡下,选中“调试位置”框

    【讨论】:

      【解决方案4】:
      猜你喜欢
      • 2015-03-20
      • 1970-01-01
      • 2022-11-15
      • 1970-01-01
      • 1970-01-01
      • 2014-09-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多