c# - UWP 应用 RequestRestartAsync 在 System.Private.Corelib 中引发异常
问题描述
我的电脑使用的是 Windows 10 build 16299,这是CoreApplication.RequestRestartAsync(...)
. 但是,在我使用 参数调用重新启动后string.Empty
,应用程序确实关闭了,几秒钟后,从以下位置抛出了一个异常System.Private.CoreLib.dll
:
Exception occurred: System.Exception: Exception from HRESULT: 0x80040900
at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
at System.Runtime.CompilerServices.TaskAwaiter`1.GetResult()
我能够从 Try/Catch 块中获取此信息,并在调试模式下从 Visual Studio 2017 运行应用程序。在我试图捕捉它之前,会出现一个对话框,指示在 Visual Studio 的另一个实例中进行调试。当另一个实例加载时,这是不允许的,因为它说已经附加了一个调试器。
此外,我尝试通过启用“公共语言运行时异常”来捕捉它,但它没有捕捉到这个异常。
为什么会这样?当我在另一台 Windows 10 机器上运行它时,重启工作正常。我可以调试或获取有关异常的更多信息System.Private.CoreLib
吗?
解决方案
当您在未连接 Visual Studio 进行调试的情况下安装并运行应用时,此错误不会影响应用的实际体验。Visual Studio 阻止 Windows 挂起附加到调试器的应用。这是为了允许用户在应用程序运行时查看 Visual Studio 调试 UI。当您使用 Visual Studio 调试此代码时,您可以在调用此方法后在您的设备任务管理器=>详细信息选项卡中看到应用状态仍在运行,因此应用无法重新启动,因为在 Windows 10 版本 1803 之前,只有一次可以运行一个 UWP 应用实例。有关多实例 UWP 的更多详细信息,请参阅创建多实例通用 Windows 应用。
但在我对设备 OS 版本 1803 OS build 17134 和 Visual Studio 版本 15.7 的测试中,它会在您调用CoreApplication.RequestRestartAsync(string.Empty)
代码后自动断开 Visual Studio 调试器。
推荐阅读
- python-3.x - PySpark add column if date in range by quarter
- flutter - 如果 Dart 上的日期为空,如何处理日期?
- python - Django/Wagtail - 通过多个父页面优化页面查询集的最有效方法
- css - CSS object-fit cover is stretching a particular image in Chrome on Mac
- javascript - 如何在 Firebase Firestore 的数组中推送用户对象
- c# - 如何在 c# 中基于构造函数方法创建数组?
- oracle - 在从类型对象插入之前,plsql 在表中创建一个 upsert/merge 逻辑
- java - 游戏返回执行的命令
- reactjs - API 调用后无法让 Circles 在 react-leaflet 地图上呈现
- javascript - 在javascript中向数组添加键名