首页 > 解决方案 > 尝试使用 SocketActivityTrigger 注册后台任务时,UWP 冻结

问题描述

我正在尝试使用以下代码(在 App 类的 OnLaunched 方法内)在应用启动时使用 SocketActivityTrigger 注册后台任务:

foreach (var t in BackgroundTaskRegistration.AllTasks)
{ t.Value.Unregister(true); }
var builder = new BackgroundTaskBuilder();
builder.Name = exampleTaskName;
builder.TaskEntryPoint = "RuntimeComponent1.Class1";
builder.SetTrigger(new SocketActivityTrigger());
task = builder.Register();

如您所见,一开始我将删除所有以前注册的任务,以确保我没有两次注册该任务。后台任务的项目(运行时组件项目)引用自我的 App 项目,后台任务在清单中的声明中声明,并且在清单中也检查了互联网和私有网络功能。

当我运行它几次时,它可以工作,然后它在启动时开始冻结并且无法启动,如您在屏幕截图中看到的那样:

在此处输入图像描述

重新启动PC后,它再次开始工作,多次后又开始冻结,直到我再次重新启动......等等。

我在注册前已经尝试过使用BackgroundExecutionManager.RequestAccessAsync();,但问题没有解决。

即使使用Microsoft的此应用程序也会发生同样的情况!它第一次正确启动,然后像屏幕截图中那样启动后开始冻结,直到我重新启动:

在此处输入图像描述

问题仅在于SocketActivityTrigger; 当我尝试使用另一个触发器(例如 SystemTriggerType.TimeZoneChange 类型的 SystemTrigger)注册任务时,问题不会发生。

更新:我注意到问题是在连接到套接字后开始的。

标签: uwpwindows-runtimewin-universal-appwindows-10-universal

解决方案


推荐阅读