当状态保存时间过长时,如何检测真正的终止状态?

How to detect the real termination state when state saving takes too long?

我有一个 UWP 应用程序可以在暂停期间保存当前页面状态。对于特定的页面,它只保存几个模型。状态文件是大约。 50 - 60 KB。但是,对于某些用户来说,保存当前状态的时间太长,系统会终止我的应用程序。

我可以在事件查看器下看到日志。所以我很确定这是因为保存时间太长了。我尝试使用 ExtendedExecution 但即使它也没有帮助。

有没有什么方法可以检测为什么花费的时间太长,或者有什么方法可以为我提供有关保存状态的更详细信息?

它只发生在一些用户身上,而不是每个用户,我很确定我正在保存的模型对 运行 计算机来说不会有太大负担。顺便说一下,我在 Prism 中使用 MVVM 模式。

嗯...在对有问题的设备进行详细调查后,我发现 NetworkInformation class 通常会冻结系统。此冻结也会影响我的应用程序,最终与 IO 相关的所有内容都会在此期间冻结。

原来是网卡驱动的问题。每当用户将 3G 调制解调器插入 USB 端口时,任何主动使用 NetworkInformation(包括 Windows 设置本身)class 的内容都会被冻结。就我而言,我认为这是一个状态服务问题(最终仍然是)。虽然实际上不是那样。

1) 用户插入设备并开始使用该应用程序。 2)冻结发生后,他离开并锁定设备。 3) 当用户返回并解锁屏幕时,网卡驱动程序被激活并通知所有正在使用 NetworkInformation 的对象。 4) 在解锁过程中,应用程序尝试恢复状态,但由于一般冻结情况而无法实际执行。 5) Windows 确定我的应用无法恢复状态并终止它。

好消息,设备是 Windows 10 上的 HP Elite X2 运行,问题出在 3G-4G USB 调制解调器上。在 Wifi 上一切看起来都很好。这似乎是设备本身的网络驱动程序问题,但我也一直讨厌 NetworkInformation...