响应式WCF客户端的双工回调或客户端线程

时间:2009-01-12 04:32:54

标签: wpf wcf multithreading duplex

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

  1. 使用双工频道,只需使用回调即可在收到数据时更新用户界面。
  2. 使用单独的线程来调用服务,只需使用请求 - 回复操作,然后在返回数据时更新ui线程。
  3. 哪种解决方案更好,特别是在互操作性受到青睐但并非绝对必要时,并且您认为哪种解决方案更快(更清洁)?[/ p>

2 个答案:

答案 0 :(得分:5)

如果您实现了回调契约,那么您将无需客户端实现多线程代码。在使用.Net客户端时,这可能不是一个显着的优势(因为VS会自动为您生成异步代理代码),但在与其他平台/语言的客户端合作时可能会有所帮助。

哪一个更干净?嗯,这取决于您是客户端还是服务器开发人员。如果,正如我怀疑你的情况,你是两个,并且你可以只使用.Net作为客户端和服务器,那么我现在可能想要避免回调。如果你暗示服务呼叫需要45秒,那么我会说回叫合同,这确实是主观的,但如果我要坚持下去,那么我会说如果响应时间超过5秒那么是时候转向回调了。

答案 1 :(得分:0)

您应该实施CallBackcontract

这是example

相关问题