我注意到你只能异步调用Silverlight的WCF服务。这似乎是一个非常合理的做法,特别是在通过互联网进行部署时,但我想知道为什么这种限制已经放在了架构上。这纯粹是为了执行良好做法,还是有技术原因?
答案 0 :(得分:8)
基本上是因为Silverlight在浏览器窗口UI线程上运行。 这意味着如果Silverlight同步等待回复 - 那时整个浏览器窗口都没有响应。
此外,Silverlight最初(Silverlight 2)只有一个客户端浏览器通信堆栈 这意味着,Silverlight中的所有通信都通过浏览器进行路由 浏览器不支持用于通信的同步编程模型。
Silverlight 3+非浏览器客户端通信堆栈的问题不大,但保持编程模型的位置仍然有意义。