Dans Silverlight, j'ai rencontré le problème suivant. Si vous envoyez plusieurs demandes au service Web, les réponses risquent de ne pas être renvoyées dans une séquence ordonnée. Signification si la première demande est plus longue que les suivantes, sa réponse sera de retour enfin:Suppression des réponses WCF obsolètes dans Silverlight
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
Maintenant, dans mon scénario, je ne suis intéressé par la plus récente demande être fait. Donc A et B devraient être discutés et C devrait être gardé comme seule réponse acceptée.
Quelle est la meilleure approche pour gérer cela? J'ai trouvé cette solution jusqu'à présent:
Passez un GUID généré en tant qu'objet utilisateur lors de l'envoi de la requête et stockez cette valeur quelque part. Comme toutes les réponses contiendront leur GUID respectif, vous pouvez filtrer les réponses périmées. Un compteur de requêtes au lieu d'un GUID fonctionnerait également.
Maintenant, je me demande s'il existe de meilleures approches à ce sujet. Peut-être y at-il des fonctionnalités prêtes à l'emploi pour rendre cela possible? Toutes les idées sont les bienvenues ..