0

我想模拟ApplicationExecutionState.Terminated状态。

我正在执行以下操作
1. 启动应用程序
2. 导航到桌面,等待应用程序处于挂起状态
3. 使用任务管理器中的结束任务终止应用程序。

此应用程序用于演示,之前它在消费者预览版中。当时,上述步骤效果很好。

现在,在 Windows 8 RTM 中,使用上述步骤,ApplicationExecutionState即将成为NotRunning.

我想知道Terminated状态如何?

我已经知道以下
1. 通过使用模拟器,首先让应用程序暂停,然后从模拟器中注销。
2.通过在windows中施加内存压力。这样应用程序将自动终止。问题是我不知道,如何把内存压力。

4

2 回答 2

2

要在调试期间触发Suspend and shutdown以及其他进程生命周期管理事件,请使用Debug LocationVisual Studio 中的工具栏。在 Dropbox 旁边Process有一个包含上述命令的下拉按钮:

进程生命周期管理命令

无需使用模拟器即可。您也可以在本地计算机上运行该应用程序。

您可以在此 MSDN 文章的下拉按钮中阅读有关此命令和其他命令的更多信息。

于 2013-03-08T20:05:36.610 回答
1

这个微软论坛问题

Terminated 表示应用先被挂起,然后用户 Session 正常结束。

要在调试器中模拟这一点,您可以在模拟器中运行您的应用程序,然后触发挂起(调试、触发挂起)。然后您可以注销模拟器。然后,您可以在调试器中再次启动模拟器,并看到您遇到了来自先前“终止”状态的条件。

或者,您可以使用winrt.codeplex.com上提供的工具

[更新:2013-03-11 @ 11:02PST]

重要的是要了解,在Windows 8 App Lifecycle中,ApplicationExecutionState枚举指示上次进程退出时应用程序的状态(通过几个对象的PreviousExecutionStateproperty )。

模拟这种状态的唯一方法是暂停您的应用程序,注销并重新登录并重新启动应用程序,或者您可以通过使用/编写一个可以消耗相当大一部分可用物理 RAM 的应用程序来模拟负载下的系统,强制 Windows 通过强制终止暂停的应用程序来尝试回收资源。

要使您的机器压力过大并消耗大量内存等,您可以使用 Windows SDK 中的 consume.exe 命令行应用程序或使用James McCaffrey 的 EatMem 工具

于 2013-03-08T10:52:50.680 回答