我遇到的一个挑战是,我不能等到所有线程完成并且结果合并,我必须开始接收数据,因为它可用.这叫我在服务上实现一个观察者模式,以便在合并新的结果集并准备好使用它并将它们发送到应用程序时通知我的应用程序.
我正在寻找如何使用ASMX webservices或WCF执行此操作,到目前为止,我发现使用WCF实现它,但此线程始终是开放的建议和改进.
好吧我的问题的解决方案来自 WCF除了ASMX Web服务的经典请求 – 回复操作之外,WCF还支持其他操作类型,例如:单向呼叫,双工回叫和流媒体.
不难猜测,双工回调是我想要的.
双工回调只允许服务对客户端进行回叫.在服务器上定义了回调协定,并且客户端需要在每次调用时提供回调端点.然后由服务决定何时以及使用回调引用的次数.
只有支持bidirectiona的绑定才支持回调操作. WCF提供WSDualHttpBinding以支持HTTP上的回调(NetNamedPipeBinding和NetTcpBinding也存在回调支持,因为TCP和IPC协议支持双工通信)
这里需要注意的一件非常重要的事情是双工回调是非标准的纯Microsoft功能.这不会对我当前的任务造成问题,因为我的Web服务和应用程序都在Microsoft ASP.NET上运行
Programming WCF Services给了我一个很好的WCF启动.它超过700页,深入研究了所有WCF的概念,并有一个关于回调和其他类型操作的专门章节.
我在网上找到的其他一些好资源是;
Windows Communication Foundation (WCF) Screencasts
MSDN Webcast: Windows Communication Foundation Top to Bottom
Web Service Software Factory
The Service Factory for WCF