来自Silverlight的异步WCF调用

Cra*_*rze 4 silverlight wcf asynchronous

我注意到你只能异步调用Silverlight的WCF服务.这似乎是一个非常合理的做法,特别是在通过互联网部署时,但我想知道为什么这个限制已经放在架构上.这纯粹是为了执行良好做法,还是有技术原因?

Jus*_*gel 8

本质上是因为Silverlight在浏览器窗口UI线程上运行.这意味着如果Silverlight同步等待回复 - 那时整个浏览器窗口都没有响应.

此外,Silverlight最初(Silverlight 2)只有一个客户端浏览器通信堆栈.
这意味着,Silverlight中的所有通信都通过浏览器进行路由.
浏览器不支持用于通信的同步编程模型.

对于Silverlight 3+非浏览器客户端通信堆栈来说,这不是一个问题,但保持该编程模型到位仍然是有意义的.