推送通知性能问题[UWP]

推送通知性能问题[UWP],uwp,windows-store-apps,win-universal-app,windows-10-universal,Uwp,Windows Store Apps,Win Universal App,Windows 10 Universal,我的UWP项目中的推送通知配置有问题。实际上,问题是性能。注册我的应用程序以获取推送通知的那段代码(如下所示)使它在打开时慢得多 一些测试结果(启动屏幕加载时间,因为我使用OnStartAsync/Template10) 使用的代码=>桌面:15秒,移动:16秒 代码未使用=>桌面:3秒,手机:6秒 StoreServicesEngagementManager engagementManager = StoreServicesEngagementManager.GetDefault(); aw

我的UWP项目中的推送通知配置有问题。实际上,问题是性能。注册我的应用程序以获取推送通知的那段代码(如下所示)使它在打开时慢得多

一些测试结果(启动屏幕加载时间,因为我使用OnStartAsync/Template10)

使用的代码=>桌面:15秒,移动:16秒

代码未使用=>桌面:3秒,手机:6秒

StoreServicesEngagementManager engagementManager =
 StoreServicesEngagementManager.GetDefault();
await engagementManager.RegisterNotificationChannelAsync();
移动设备:Microsoft Lumia 950

应用程序。目标版本:构建15063

微软服务商店SDK10.1705.16版


我想知道人们如何使用这个SDK并获得性能?谢谢

我已经测试了您的代码,并在windows Template10中复制了您的问题。问题是,
RegisterNotificationChannelAsync
方法发出网络请求需要时间。这取决于网络环境需要多长时间

如果您直接调用OnStartAsync方法中的
RegisterNotificationChannelAsync
,它将阻塞主线程。因此,你需要花很长时间等待应用程序启动

您可以使用
async
方法打包您提到的代码

private async void RegisterEngagementNotification()
{
    StoreServicesEngagementManager engagementManager = StoreServicesEngagementManager.GetDefault();
    await engagementManager.RegisterNotificationChannelAsync();
}
此方法将在子线程中调用。应用程序将直接启动

public override async Task OnStartAsync(StartKind startKind, IActivatedEventArgs args)
{
    RegisterEngagementNotification();
    await NavigationService.NavigateAsync(typeof(Views.MainPage));
}

当我们在上面的Register方法中添加async时,它是如何在“subthread”中自动调用的?还有,这里的子线程是什么意思?(你是说任务?)