在 Silverlight 中,我遇到了以下问题。如果您向 Web 服务发出多个请求,则响应可能不会按顺序返回。这意味着如果第一个请求比以下请求花费的时间更长,它的响应将最后返回:
1. Sending request A.. (takes longer for some reason)
2. Sending request B..
3. Sending request C..
4. ...
5. Receiving response B
6. Receiving response C
7. Receiving response A
现在在我的场景中,我只对最近发出的请求感兴趣。所以 A 和 B 应该被忽略,而 C 应该被保留为唯一接受的响应。
管理此问题的最佳方法是什么?到目前为止,我想出了这个解决方案:
发送请求时将生成的 GUID 作为用户对象传递,并将该值存储在某处。由于所有响应都将包含它们各自的 GUID,因此您现在可以过滤掉过时的响应。请求计数器而不是 GUID 也可以工作。
现在我想知道是否有更好的方法来解决这个问题。也许有任何开箱即用的功能可以使这成为可能?欢迎任何想法..