代码之家  ›  专栏  ›  技术社区  ›  Andrei Rînea

仅限Silverlight WCF代理异步?

  •  8
  • Andrei Rînea  · 技术社区  · 15 年前

    为什么silerlight生成的wcf代理类只提供异步调用?

    在某些情况下,我并不真正需要异步模式(例如在后台工作人员中)

    编辑:有时我需要处理两个WCF调用的结果。如果我可以等待(应用程序的业务允许这样做)两个调用结束,然后再进行处理,那就简单多了。但是没有…异步!P

    3 回复  |  直到 13 年前
        1
  •  6
  •   alexdej    15 年前

    实际上,您不能进行同步调用的技术原因是浏览器调用同一线程上的所有插件API调用,因此如果SL在等待网络回调时阻塞该线程,则网络回调将无法通过,应用程序将死锁。也就是说,如果同步API是从另一个线程启动的,也就是说,如果应用程序首先执行queueuserworkitem以脱离浏览器线程,那么它会很好地工作,但是我们觉得提供同步选项会让人困惑,并且只让它在某些时候工作。

        2
  •  7
  •   Marc Gravell    15 年前

    据我所知,这里的目的是让人们很难做错事(同步)。来自用户界面的IO)。如果您使用的是WCF类,那么您可能必须使用它。

        3
  •  0
  •   Mosè Bottacini    13 年前

    Andrei,还有一种方法,即使使用异步模式,也可以通过简化编写代码的方式来编写表达性代码,ESASY可以读取和维护,而不会疯狂地等待4个异步请求。 看看这个图书馆 http://syncwcf.codeplex.com/