1

我成功地能够从移动应用程序或控制台应用程序调用部署在下面链接上的Web Api。 https://dposapi.azurewebsites.net/DPosApi/v1/Configurations/GetAll从运行时组件中的BackgroundTask调用WebApi组件UWP Windows 10应用程序

问题是,当我将此调用放入RunTime组件项目中的BackgroundTask中,并从移动应用程序中触发后台任务时,执行会挂起在我调用Web Api的代码行上。样本可在下面的链接中找到。

https://github.com/imranshabbir/Sample

可能是什么问题呢?

谢谢。

回答

0

你的run方法应该是异步,是这样的:(注意FillProducts()之前的await)

public async void Run(IBackgroundTaskInstance taskInstance) 
{ 
     BackgroundTaskDeferral deferal = taskInstance.GetDeferral(); 
     // do your task here 
     await FillProducts(); 
     deferal.Complete(); 
} 

顺便说一句。你确认

“执行上的代码,其中我打电话的网络API行挂起”?

在您当前的代码中,问题是后台任务在获得结果之前完成(没有等待执行命中deferal.Complete();行)。所以在这种情况下,你只是看不到结果,但这不应该是一个悬念。

但无论如何...异步/等待是答案。

+0

谢谢,它的工作现在。 –

+0

太棒了!你能接受吗? – gregkalapos

+0

此代码显示错误**无法等待无效**请帮助我。 @gregkalapos –

相关问题