В 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
Теперь в моем сценарии меня интересует только самая последняя сделанная просьба . Таким образом, A и B должны быть отброшены, а C - только принятым ответом.
Каков наилучший подход к управлению этим? Я придумал это решение до сих пор:
Передать сгенерированный GUID как пользовательский объект при отправке запроса и сохранить это значение где-нибудь. Поскольку все ответы будут содержать соответствующий GUID, теперь вы можете отфильтровывать устаревшие ответы. Счетчик запросов вместо GUID также будет работать.
Теперь мне интересно, есть ли лучшие подходы к этому. Может быть, есть какие-то из готовых функций, чтобы сделать это возможным? Любые идеи приветствуются ..