【问题标题】:Does a WCF service run on the UI thread or on the Asynchronous Request thread in Windows Phone 7?WCF 服务是在 UI 线程上运行,还是在 Windows Phone 7 中的异步请求线程上运行?
【发布时间】:2011-10-27 21:01:58
【问题描述】:
正如问题所述,访问 WCF 服务时使用哪个线程?
我订阅的大多数 Web 服务都使用了 HttpWebRequest,因为它不会阻塞 UI 线程。但是当我访问 Bing API 时,它使用 WCF 服务。这是 WebClient 或 HttpWebRequest 的实现吗?
从外观上看,它更像是 WebClient,因为它不需要您调用 BeginInvoke 来将数据编组到 UI 线程?这准确吗?
【问题讨论】:
标签:
c#
.net
multithreading
wcf
windows-phone-7
【解决方案1】:
Windows Phone 上没有 WCF 服务 - 该平台中的 API 仅包含 WCF 的 client 部分的代码(访问服务)。
您不能同时使用 HttpWebRequest 和 WebClient 阻塞 UI 线程(例如,分别使用 BeginGetResponse 和 DownloadAsync)。如果我没记错的话,手机中的WCF客户端内部使用HttpWebRequest,但这是一个实现细节,可以随时更改。并且来自 Windows Phone 平台(以及 Silverlight)的所有 WCF 调用都需要是异步的(即不支持同步)。