MobileService 离线同步 PullAsync 不 return
MobileService Offline Sync PullAsync does not return
我目前正在尝试更新我的 Windows Phone 应用程序以使用具有离线同步功能的移动服务。
我使用了 msdn 入门,但它对我不起作用。
每次打电话
await table.PullAsync("table", table.getQuery());
它永远不会完成(程序不会继续)。
使用 fiddler 我可以看到,客户端从服务器获得了正确的响应。
可能是什么问题?
谢谢!
编辑:当我执行 .GetAwaiter().OnCompleted(...) 时,回调被调用。为什么 await 挂起?
最常见的原因是,在调用堆栈中的某处,您使用 GetResult()
或类似的方式执行 GetAwaiter()
的操作 - 这通常是 "hangs" 第二次调用的程序因为它仍在等待一个从未退出的线程。
在整个应用中始终使用 await
。
也尽可能将ConfigureAwait
(false)添加到await
ed方法中,即:
await table.PullAsync("table", table.getQuery()).ConfigureAwait(false);
有关此事的更多信息,请访问 Stephen Cleary's blog
我目前正在尝试更新我的 Windows Phone 应用程序以使用具有离线同步功能的移动服务。
我使用了 msdn 入门,但它对我不起作用。
每次打电话
await table.PullAsync("table", table.getQuery());
它永远不会完成(程序不会继续)。
使用 fiddler 我可以看到,客户端从服务器获得了正确的响应。
可能是什么问题?
谢谢!
编辑:当我执行 .GetAwaiter().OnCompleted(...) 时,回调被调用。为什么 await 挂起?
最常见的原因是,在调用堆栈中的某处,您使用 GetResult()
或类似的方式执行 GetAwaiter()
的操作 - 这通常是 "hangs" 第二次调用的程序因为它仍在等待一个从未退出的线程。
在整个应用中始终使用 await
。
也尽可能将ConfigureAwait
(false)添加到await
ed方法中,即:
await table.PullAsync("table", table.getQuery()).ConfigureAwait(false);
有关此事的更多信息,请访问 Stephen Cleary's blog