0
我的Silverlight应用程序中有几个伪全局实体,这些实体使用来自服务器的数据填充。我的'服务代理'类作为单例在IoC容器中注册,因此它将缓存数据以防止对服务器的过度调用。将来自SL4应用程序的多个请求排队到某个服务
但是,我遇到了一个场景,其中多个请求正在对“服务代理”进行处理,而初始请求仍处于待处理状态。当我研究其他有助于解决问题的设计问题时,我想知道你可能有什么想法来解决这个问题。我最初的想法是以某种方式将请求排队,如果一个调用已经在进行,然后在数据被检索时处理它们。
需要更多细节。听起来像是一个设计问题给我。为什么在初始请求处于待处理状态时发出了多个请求?为什么不设置某种标志/锁以防止进一步的请求,直到最初的请求完成?你能提供几个基本的代码片段吗? –
最具体的是我们的应用程序设置,我们需要从服务器上拉下来初始化某些功能。多个视图(人眼视图模型)将尝试从我们的单件服务代理异步加载设置;不过,我不想多次打电话。我宁愿只将第一个请求转换成服务调用,然后让所有其他请求中止,直到调用返回,在这一点我可以触发所有的回调。 – SonOfPirate
是的,我认为你是一个队列和锁定机制正确的方向。阅读这篇文章的一些想法:http://stackoverflow.com/questions/2465442/how-to-run-batched-wcf-service-calls-in-silverlight-backgroundworker –