VS2012 の既定の C# "Metro スタイル" プロジェクト テンプレートには、App.xaml.cs (OnLaunched
オーバーライド内) にコードが含まれており、サスペンド アンド ターミネート後にアプリケーションの状態を復元します。このコードLaunchActivatedEventArgs.PreviousExecutionState
はTerminated
、「アプリが一時停止後に終了された」場合にのみ実行されます。
アプリを強制的に中断および終了して、アプリでこの中断/再開機能をテストするにはどうすればよいですか?
私が試したことはうまくいきません:
- 「アプリを閉じる」ジェスチャ (画面の上部から下部にドラッグ) を使用すると、次の実行
PreviousExecutionState
はClosedByUser
. - タスク マネージャーを使用するか、(デバッグ中の場合は) VS ツールバーの [停止] ボタンを使用してアプリを強制終了すると、次の実行
PreviousExecutionState
はNotRunning
. これは、タスク マネージャーがタスクを終了する前にアプリを「一時停止」と表示した場合でも当てはまるため、「一時停止後に終了」という説明よりも明らかに微妙です。 - アプリから切り替えて、最終的にアプリが追い出されるまで、他の多くの Metro スタイル アプリを開くことができると思うかもしれません。しかし、Windows 8 Release Preview に同梱されているすべての Metro スタイル アプリを開いたとしても、Windows がアプリを終了させるほどのメモリ負荷にはならないようです。(デバッグ中のアプリを Windows が終了する可能性は低いと思われるため、これを試す前に、デバッガーなしでスタート画面からアプリを起動しました。)
アプリから離れて StackOverflow ウィンドウに数分間入力すると、アプリが最終的に終了するように見えるので、おそらく時間ベースのコンポーネントがあります。しかし、アプリが終了するまで毎回 5 ~ 10 分待たなければならない場合は、テスト サイクルがかなり遅くなります。
これが開発者がテストしなければならないものであることを考えると、開発者がアプリを強制的に一時停止して終了させる簡単で便利な方法があると思うでしょう。十分なメモリ プレッシャを強制する、Visual Studio に付属する何らかの種類のストレス テスト アプリはありますか? アプリを強制終了する Visual Studio のメニュー項目はありますか? これをどのようにテストすればよいでしょうか?