WebApi在RunTime组件UWP Windows 10应用程序中从BackgroundTask调用

时间:2016-01-22 12:16:44

标签: asp.net-web-api2 uwp windows-10-mobile windows-10-universal background-task

我已成功通过移动应用或控制台应用调用部署在下方链接上的Web Api。 https://dposapi.azurewebsites.net/DPosApi/v1/Configurations/GetAll

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

https://github.com/imranshabbir/Sample

可能是什么问题?

感谢。

1 个答案:

答案 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就是答案。