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

4
我有一个特定的服务,其中某些功能调用需要比其他功能更长的时间,有时可能需要几秒钟才能返回。为了防止客户端的UI被阻塞,当发生这种情况时,哪种解决方案是首选呢?
1. 使用双工通道,仅使用回调函数在接收到数据时更新UI。 2. 使用单独的线程调用服务,仅使用请求-响应操作,然后在返回数据时更新UI线程。
哪种方案更好,特别是在优先考虑互操作性而不是必需时,您认为哪种方案实现和维护起来更快(更干净)?
2个回答

5
如果您实现回调合同,那么您就不需要客户端实现多线程代码。当与 .Net 客户端一起工作时,这可能并不是一个显著的优势(因为 VS 将自动生成异步代理代码),但在与其他平台/语言的客户端一起工作时可能会有所裨益。
哪个更干净?这取决于您是客户端开发人员还是服务器开发人员。如果像我怀疑的那样,您既可以使用 .Net 作为客户端又可以使用 .Net 作为服务器,则我可能会暂时避免使用回调。如果您暗示服务调用需要 45 秒,那么我会说回调合同,这确实是主观的,但如果我要冒险的话,我会说如果响应时间超过 5 秒,则是时候转向回调了。

0

使用回调契约(又称双工通道)与在客户端使用线程相比,有什么特别的原因吗? - laurencer

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接