繁体   English   中英

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

[英]Duplex Callbacks or Client-Side Threading for Responsive WCF Clients

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

  1. 使用双工通道,只需使用回调即可在收到数据时更新UI。
  2. 使用单独的线程来调用服务,只需使用请求 - 回复操作,然后在返回数据时更新ui线程。

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

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

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

您应该实现CallBackcontract

这是一个例子

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM