为什么Silerlight生成的WCF代理类仅提供异步调用?
在某些情况下,我并不真正需要异步模式(例如在BackgroundWorker中)
编辑:有时我需要处理两个WCF调用的结果。如果我可以等待(应用程序的业务允许)两个调用结束然后处理它会更简单..但是没有....异步! :P
答案 0 :(得分:7)
据我所知,这里的目的是让人们很难做错事(从UI同步。)。如果你正在使用WCF类,你可能不得不忍受它。
答案 1 :(得分:6)
实际上有一个技术上的原因,你不能进行同步调用,至少从'主'浏览器线程,这是浏览器调用同一线程上的所有插件API调用,所以如果SL要阻止该线程在等待网络回调时,网络回调无法通过,应用程序将死锁。也就是说,如果从不同的线程启动,同步API将正常工作 - 即,如果应用程序首先执行QueueUserWorkItem以脱离浏览器线程 - 但我们认为提供同步选项并仅使用它会令人困惑在某些时候工作。
答案 2 :(得分:0)