【问题标题】:Duplex Callbacks or Client-Side Threading for Responsive WCF Clients响应式 WCF 客户端的双工回调或客户端线程
【发布时间】:2010-09-30 20:54:27
【问题描述】:

我有一项服务,其中特定功能的调用时间比其他服务要长,有时它们可​​能需要几秒钟才能返回。为了防止客户端的 UI 在发生这种情况时被阻止,首选的解决方案是:

  1. 使用双工通道并在收到数据时简单地使用回调来更新 UI。
  2. 使用单独的线程调用服务,简单的使用request-reply操作,然后在返回数据时更新ui线程。

哪种解决方案更好,特别是在互操作性受到青睐但并非绝对必要的情况下,并且在您看来,哪种解决方案的实施和维护更快(更清洁)?

【问题讨论】:

    标签: wpf wcf multithreading duplex


    【解决方案1】:

    如果您实施回调合同,那么您就无需客户端实施多线程代码。在使用 .Net 客户端时,这可能不是一个显着优势(因为 VS 会自动为您生成异步代理代码),但在使用其他平台/语言的客户端时可能会被证明是有益的。

    哪个更干净?好吧,这取决于您是客户端还是服务器开发人员。如果,正如我在您的情况下所怀疑的那样,您两者都是,并且您可以将 .Net 用于客户端和服务器,那么我可能会暂时避免回调。如果您暗示服务调用需要 45 秒,那么我会说回调合同,这确实是主观的,但如果我要伸出脖子,那么我会说如果响应时间超过 5 秒那么是时候转向回调了。

    【讨论】:

      【解决方案2】:

      您应该实现CallBackcontract

      这是example

      【讨论】:

      • 使用 CallbackContract(又名双工通道)而不是在客户端使用线程有什么特别的原因吗?
      猜你喜欢
      • 2011-02-13
      • 2013-07-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多