我有一项服务,其中特定功能需要比其他功能更长的时间,有时它们可能需要几秒钟才能返回。为了防止客户端的UI被阻止,这是首选的解决方案:
哪种解决方案更好,特别是在互操作性受到青睐但并非绝对必要时,并且您认为哪种解决方案更快(更清洁)?[/ p>
答案 0 :(得分:5)
如果您实现了回调契约,那么您将无需客户端实现多线程代码。在使用.Net客户端时,这可能不是一个显着的优势(因为VS会自动为您生成异步代理代码),但在与其他平台/语言的客户端合作时可能会有所帮助。
哪一个更干净?嗯,这取决于您是客户端还是服务器开发人员。如果,正如我怀疑你的情况,你是两个,并且你可以只使用.Net作为客户端和服务器,那么我现在可能想要避免回调。如果你暗示服务呼叫需要45秒,那么我会说回叫合同,这确实是主观的,但如果我要坚持下去,那么我会说如果响应时间超过5秒那么是时候转向回调了。
答案 1 :(得分:0)
您应该实施CallBackcontract。
这是example。