在 Visual Studio 中调试 UWP 应用时触发挂起、继续和后台事件
不调试时,Windows 进程生命期管理 (PLM) 根据用户操作和设备状态控制应用程序的执行状态 - 启动、挂起、继续和终止应用程序。 在调试时,Windows 禁用这些激活事件。 本主题介绍如何在调试器中触发这些事件。
本主题还介绍如何调试 后台任务。 借助后台任务,即使应用未在运行,也可在后台进程中执行某些操作。 可使用调试器使应用程序进入调试模式,然后不启动 UI 即启动和调试后台任务。
有关进程生存期管理和后台任务的详细信息,请参阅启动、继续和多任务处理。
触发进程生命期管理事件
当用户从应用切换至别处时或当 Windows 进入电量不足状态时,Windows 可挂起应用。 可响应 Suspending
事件,将相关的应用程序和用户数据保存到永久存储并释放资源。 从 “已挂起” 状态继续应用程序时,该应用程序将进入 “正在运行” 状态,并从其挂起之处继续。 可响应 Resuming
事件,还原或刷新应用程序状态并回收资源。
尽管 Windows 尝试尽可能多地在内存中保留挂起的应用程序,但如果没有足够资源可将应用程序保留在内存中,则 Windows 仍可终止该应用程序。 用户还可显式关闭应用程序。 没有特殊事件指示用户已关闭应用程序。
在 Visual Studio 调试器中,可手动挂起、继续和终止应用程序以调试进程生命周期事件。 若要调试进程生命周期事件,请执行以下操作:
在要调试的事件的处理程序中设置断点。
按 F5 启动调试。
在 “调试位置” 工具栏上,选择要触发的事件:
“挂起和终止”将关闭应用并结束调试会话。
触发后台任务
任何应用程序均可注册后台任务以响应某些系统事件,即使应用程序未运行也是如此。 后台任务不能运行直接更新 UI 的代码,但可通过磁贴更新、徽章更新和 toast 通知向用户显示信息。 有关详细信息,请参阅使用后台任务支持应用。
可从调试器触发对应用程序启动后台任务的事件。
注意
调试器只能触发那些不包含数据的事件,如指示设备中状态更改的事件。 必须手动触发需要用户输入或其他数据的后台任务。
触发后台任务事件的最实际的方法是在应用程序未运行时触发。 但是,也支持在标准调试会话中触发该事件。
从标准调试会话中触发后台任务事件
在要调试的后台任务代码中设置断点。
按 F5 启动调试。
从 “调试位置” 工具栏上的事件列表中,选择要启动的后台任务。
在应用程序未运行时触发后台任务
在要调试的后台任务代码中设置断点。
打开启动项目的调试属性页。 在“解决方案资源管理器”中,选择项目。 在 “调试” 菜单中,选择 “属性” 。
对于 C++ 项目,展开“配置属性”,然后选择“调试”。
执行下列操作之一:
对于 Visual C# 和 Visual Basic 项目,选择 “不启动,但在启动时调试代码”
对于 C++ 项目,从“启动应用程序”列表中选择“否”。
按 F5 使应用程序进入调试模式。 注意, “调试位置” 工具栏上的 “进程” 列表显示应用程序包名称以指示您处于调试模式下。
从 “调试位置” 工具栏上的事件列表中,选择要启动的后台任务。
从安装的应用程序中触发进程生命期管理事件和后台任务
使用“调试安装的应用包”对话框加载已安装到调试器中的应用。 例如,你可以调试已从 Microsoft Store 安装的应用,或在具有应用的源文件但没有针对应用的 Visual Studio 项目时调试应用。 利用“调试安装的应用包”对话框,你可以在 Visual Studio 计算机或远程设备上在调试模式下启动应用,也可以将应用设置为在调试模式下运行但不启动应用。 有关详细信息,请参阅调试安装的应用包。
在将应用程序加载到调试器中后,您可以使用上述任意过程。
诊断后台任务激活错误
Windows 事件查看器中针对后台基础结构的诊断日志包含详细信息,这些信息可用于诊断和排查后台任务错误。 若要查看日志,请执行以下操作:
打开事件查看器应用程序。
在 “操作” 窗格中,选择 “查看” ,然后确保选中 “显示分析和调试日志” 。
在 “事件查看器(本地)” 树中,依次展开 “应用程序和服务日志”>“Microsoft”>“Windows”>“BackgroundTasksInfrastructure” 。
选择 “诊断” 日志。