从运行时组件 UWP 中的 BackgroundTask 调用 WebApi Windows 10 个 App

WebApi Call from BackgroundTask in RunTime Component UWP Windows 10 App

我能够从移动应用程序或控制台应用程序成功调用部署在 link 下方的 Web Api。 https://dposapi.azurewebsites.net/DPosApi/v1/Configurations/GetAll

问题是,当我将此调用放在运行时组件项目的 BackgroundTask 中并从移动应用程序触发后台任务时,执行挂起在我调用 Web 的代码行 Api。示例可在下方 link.

https://github.com/imranshabbir/Sample

可能是什么问题?

您的 运行 方法应该是异步的,如下所示:(注意 FillProducts() 之前的等待)

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

顺便说一句。你确定

"execution hangs on the line of code where i am calling the Web Api"

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

但是无论如何...async/await就是答案。