uwp - 尝试使用 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)注册任务时,问题不会发生。
更新:我注意到问题是在连接到套接字后开始的。
解决方案
推荐阅读
- python-3.x - 数据框Python中连续值的位置(索引)
- python - QLayout:尝试添加 QLayout
- android - LowPower AltBeacon 扫描说明
- google-bigquery - 如何根据 BigQuery 中的未来日期预测线性值?
- android - 在多模块项目中使用 Dagger2 DispatchingAndroidInjector
- android - react-native怎么getPackageName?
- v8 - 在 Cobalt 中将 v8 构建为共享库
- sql - 尝试从服务端调用 SAP HANA 存储过程时出错
- python - 如何使用 EasyDialogs 创建没有标题栏和“取消”按钮的进度条?
- python - 提示用户输入非负整数 n,然后写入 n 的偶数位之和的程序