我已成功通过移动应用或控制台应用调用部署在下方链接上的Web Api。 https://dposapi.azurewebsites.net/DPosApi/v1/Configurations/GetAll
问题是,当我将此调用放在RunTime组件项目的BackgroundTask中并从移动应用程序触发后台任务时,执行挂起在我调用Web Api的代码行上。样品可在以下链接中找到。
https://github.com/imranshabbir/Sample
可能是什么问题?
感谢。
答案 0 :(得分:0)
你的run方法应该是异步的,如下所示:(注意FillProducts()之前的等待)
public async void Run(IBackgroundTaskInstance taskInstance)
{
BackgroundTaskDeferral deferal = taskInstance.GetDeferral();
// do your task here
await FillProducts();
deferal.Complete();
}
顺便说一下。
你确定吗?"执行挂起在我调用Web Api"
的代码行
?
在您当前的代码中,问题是后台任务在您获得结果之前完成(没有等待执行先前点击deferal.Complete();
行)。因此,在这种情况下,您只是看不到结果,但这不应该是一个悬念。
但无论如何...... async / await就是答案。