windows phone-后台线程在使用Web服务时需要更多时间

时间:2014-07-15 11:53:51

标签: c# windows-phone-8 backgroundworker

我的应用程序使用Web服务。每当我打电话给服务器时,我都会创建一个后台线程,调用自定义控件来显示进度条并阻止用户操作,然后使用调度程序显示结果并删除进度条。请注意我正在使用HTTP客户端与后台工作者对Web服务进行异步调用。我发现使用后台线程比直接从UI线程调用Web服务需要2或3秒才能加载

  1. 如何减少因使用后台线程而导致的额外加载时间?设置线程优先级可以解决问题吗?

  2. 如果我们正在创建一个后台线程,它专门用于我们编码的操作,那么在后台线程中进行异步调用有什么好处呢?

  3. 是否可以仅从UI线程调用Web服务,因为在使用后台线程进行服务调用时,用户被阻止采取任何操作?

1 个答案:

答案 0 :(得分:1)

  1. 没有更多信息就无法分辨。它不应该显着地采取更多。设置线程优先级是不正确的事情。
  2. 在专用线程内进行异步调用没有任何好处
  3. 不,你不能这样做。这很糟糕,你甚至无法通过认证。
  4. 考虑使用async / await和Tasks来实现目标。虽然你看到的性能差异肯定是奇怪的,不应该发生异步/等待和任务更容易使用(例如没有调度程序),你可以通过更清晰的代码找到你的bug。