0

我想模拟ApplicationExecutionState.Terminated状态。如何获取ApplicationExecutionState.Terminated在Window 8商店应用程序

我做以下
1.启动该应用
2.导航至桌面,等待应用程序是在暂停状态
3.杀使用结束任务从任务管理器的应用程序。

此应用程序用于演示,以前它在Consumer预览中。当时,上述步骤运作良好。

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

我想知道Terminated状态怎么样?

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

回答

1

this Microsoft forum question

终止意味着该应用程序是第一悬浮,然后将用户会话正常地结束。

要在调试器中模拟此操作,您可以在模拟器中运行您的应用程序,然后触发暂停(调试,触发暂停)。然后你可以注销模拟器。然后,您可以在调试器中再次启动模拟器,并看到您遇到了来自之前“终止”状态的情况。

或者,您可以使用可用的工具在winrt.codeplex.com

[更新:2013年3月11日@ 11:02PST]

据了解,在Windows 8 App Lifecycle是很重要的,在ApplicationExecutionState枚举指示状态应用程序上次退出的时间(通过几个对象'PreviousExecutionState属性)。

模拟此状态的唯一方法是暂停您的应用程序,注销并重新登录并重新启动应用程序,或者您可以使用/编写可占用相当部分可用的物理RAM,迫使Windows试图通过强制终止暂停的应用程序来回收资源。

为了让您的机器出来并消耗大量内存等,可以使用Windows SDK中的consume.exe命令行应用程序或使用James McCaffrey's EatMem tool

+0

我忘了提及,我已经检查了微软论坛的问题。我还没有探索winrt.codeplex.com,但它看起来很有希望。 – Tilak 2013-03-08 11:06:40

+0

[winrtdebug](winrt.codeplex.com)在Win 8 RTM中不起作用。似乎它是为某些早期版本编译的,而不是稍后更新的。有没有其他方法? – Tilak 2013-03-11 05:28:04

+0

更新了上面的答案并附加了说明。 – 2013-03-11 18:01:40

1

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

Process lifecycle management commands

有没有必要使用模拟器进行这个工作。您也可以在本地机器上运行应用程序。

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

+0

这对Visual Studio有依赖性。 – Tilak 2013-03-10 03:44:01

相关问题