次の方法で共有


Visual Studio での UWP アプリのデバッグ中に一時停止、再開、およびバックグラウンド イベントをトリガーする

デバッグを行わない場合、Windows プロセス ライフタイム管理 (PLM) は、アプリの実行状態 (ユーザーアクションとデバイスの状態に応じてアプリの開始、中断、再開、終了) を制御します。 デバッグ中は、Windows によってこれらのアクティブ化イベントが無効になります。 このトピックでは、デバッガーでこれらのイベントを発生させる方法について説明します。

このトピックでは、 バックグラウンド タスクをデバッグする方法についても説明します。 バックグラウンド タスクを使用すると、アプリが実行されていない場合でも、バックグラウンド プロセスで特定の操作を実行できます。 デバッガーを使用してアプリをデバッグ モードにしてから、UI を起動せずにバックグラウンド タスクを開始およびデバッグできます。

プロセスの有効期間管理とバックグラウンド タスクの詳細については、「 起動、再開、およびマルチタスク」を参照してください。

プロセスの有効期間管理イベントをトリガーする

ユーザーがアプリから切り替えたとき、または Windows が低電力状態になったときに、Windows はアプリを中断できます。 Suspending イベントに応答して、関連するアプリとユーザー データを永続的ストレージに保存し、リソースを解放できます。 アプリが 中断 状態から再開されると、 アプリは実行中 の状態に入り、中断された時点から続行されます。 Resuming イベントに応答して、アプリケーションの状態を復元または更新し、リソースを再利用できます。

Windows はできるだけ多くの中断されたアプリをメモリ内に保持しようとしますが、メモリ内に保持するのに十分なリソースがない場合は、アプリを終了できます。 ユーザーは、アプリを明示的に閉じることもできます。 ユーザーがアプリを閉じたことを示す特別なイベントはありません。

Visual Studio デバッガーでは、アプリを手動で中断、再開、終了して、プロセス ライフサイクル イベントをデバッグできます。 プロセス ライフサイクル イベントをデバッグするには:

  1. デバッグするイベントのハンドラーにブレークポイントを設定します。

  2. F5 キーを押してデバッグを開始します。

  3. [ デバッグの場所 ] ツール バーで、起動するイベントを選択します。

    一時停止、再開、終了、およびバックグラウンド タスク

    中断して終了 すると、アプリが閉じられ、デバッグ セッションが終了します。

バックグラウンド タスクをトリガーする

アプリが実行されていない場合でも、どのアプリでも、特定のシステム イベントに応答するバックグラウンド タスクを登録できます。 バックグラウンド タスクでは、UI を直接更新するコードを実行できません。代わりに、タイルの更新、バッジの更新、トースト通知を使用してユーザーに情報を表示します。 詳細については、「 バックグラウンド タスクでのアプリのサポート」を参照してください

デバッガーからアプリのバックグラウンド タスクを開始するイベントをトリガーできます。

デバッガーは、デバイスの状態の変化を示すイベントなど、データを含まないイベントのみをトリガーできます。 ユーザー入力またはその他のデータを必要とするバックグラウンド タスクを手動でトリガーする必要があります。

バックグラウンド タスク イベントをトリガーする最も現実的な方法は、アプリが実行されていない場合です。 ただし、標準のデバッグ セッションでイベントをトリガーすることもサポートされています。

標準デバッグ セッションからバックグラウンド タスク イベントをトリガーする

  1. デバッグするバックグラウンド タスク コードにブレークポイントを設定します。

  2. F5 キーを押してデバッグを開始します。

  3. [デバッグの場所] ツール バーのイベントの一覧から、開始するバックグラウンド タスクを選択します。

    一時停止、再開、終了、およびバックグラウンド タスク

アプリが実行されていないときにバックグラウンド タスクをトリガーする

  1. デバッグするバックグラウンド タスク コードにブレークポイントを設定します。

  2. スタートアップ プロジェクトのデバッグ プロパティ ページを開きます。 ソリューション エクスプローラーで、プロジェクトを選択します。 [ デバッグ ] メニューの [ プロパティ] を選択します。

    C++ プロジェクトの場合は、[ 構成プロパティ] を展開し、[ デバッグ] を選択します。

  3. 次のいずれかを行ってください:

    • Visual C# プロジェクトと Visual Basic プロジェクトの場合は、[起動しないが、起動時にコードをデバッグする] を選択します

      C#/VB デバッグ起動アプリケーション プロパティ

    • C++ プロジェクトの場合は、[アプリケーションの起動] の一覧から [いいえ] を選択します。

      C++/VB アプリケーションデバッグの起動プロパティ

  4. F5 キーを押して、アプリをデバッグ モードにします。 [デバッグの場所] ツール バーの [プロセス] の一覧に、デバッグ モードであることを示すアプリ パッケージ名が表示されます。

    バックグラウンド タスクプロセスリスト

  5. [デバッグの場所] ツール バーのイベントの一覧から、開始するバックグラウンド タスクを選択します。

    一時停止、再開、終了、バックグラウンド タスク

インストールされているアプリからプロセスの有効期間管理イベントとバックグラウンド タスクをトリガーする

[ インストールされているアプリ パッケージのデバッグ ] ダイアログ ボックスを使用して、既にインストールされているアプリをデバッガーに読み込みます。 たとえば、Microsoft Store からインストールされたアプリをデバッグしたり、アプリのソース ファイルがあるが、アプリの Visual Studio プロジェクトがない場合にアプリをデバッグしたりできます。 [ インストールされているアプリ パッケージのデバッグ ] ダイアログ ボックスを使用すると、Visual Studio コンピューターまたはリモート デバイスでデバッグ モードでアプリを起動したり、アプリをデバッグ モードで実行するように設定したりできますが、起動することはできません。 詳細については、「 インストールされているアプリ パッケージをデバッグする」を参照してください。

アプリがデバッガーに読み込まれたら、上記の手順のいずれかを使用できます。

バックグラウンド タスクのアクティブ化エラーの診断

バックグラウンド インフラストラクチャの Windows イベント ビューアーの診断ログには、バックグラウンド タスク エラーの診断とトラブルシューティングに使用できる詳細情報が含まれています。 ログを表示するには:

  1. イベント ビューアー アプリケーションを開きます。

  2. [操作] ウィンドウで、[表示] を選択し、[分析ログとデバッグ ログの表示] がオンになっていることを確認します。

  3. イベント ビューアー (ローカル) ツリーで、ノードアプリケーションとサービス ログ>Microsoft>Windows>BackgroundTasksInfrastructure を展開します。

  4. 診断ログを選択します。