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

相關問題