我想模拟ApplicationExecutionState.Terminated
州。
我正在做以下事项
1.启动应用程序
2.导航到桌面,等待App处于挂起状态
3.使用任务管理器中的“结束任务”终止应用程序。
此应用程序用于演示,之前是在Consumer预览版中。那时,上述步骤运作良好。
现在,在Windows 8 RTM中,使用上述步骤,ApplicationExecutionState
将成为NotRunning
。
我想知道如何Terminated
州?
我已经知道了以下几 1.通过使用模拟器,首先暂停应用程序,然后从模拟器注销 2.通过在窗口中施加内存压力。这样,应用程序将自动终止。问题是我不知道,如何施加记忆压力。
答案 0 :(得分:1)
来自this Microsoft forum question:
已终止表示该应用首先被暂停,然后用户会话正常结束。
要在调试器中模拟这个,您可以在模拟器中运行您的应用程序,然后触发暂停(Debug,Trigger Suspend)。然后你可以注销模拟器。然后,您可以在调试器中再次启动模拟器,并看到您遇到的情况是您来自之前的“已终止”状态。
或者,您可以使用winrt.codeplex.com
处提供的工具[更新:2013-03-11 @ 11:02PST]
重要的是要理解在Windows 8 App Lifecycle中,ApplicationExecutionState
枚举表示上次退出流程时应用程序的状态(通过多个对象'PreviousExecutionState
属性)。
模拟此状态的唯一方法是暂停您的应用,注销并重新登录并重新启动应用,或者您可以通过使用/编写可能占用相当大一部分的应用来模拟负载下的系统可用的物理RAM,迫使Windows尝试通过强制终止暂停的应用来回收资源。
要压缩机器并消耗大量内存等,您可以使用Windows SDK中附带的consume.exe命令行应用程序或使用James McCaffrey's EatMem tool。
答案 1 :(得分:1)
要在调试期间触发Suspend and shutdown
以及其他进程生命周期管理事件,请使用Visual Studio中的Debug Location
工具栏。在Process
保管箱旁边有一个下拉按钮,其中包含上述命令:
没有必要使用模拟器来实现这一点。您也可以在本地计算机上运行该应用程序。
您可以在this MSDN article的下拉按钮中阅读有关此内容和其他命令的更多信息。