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 の代わりに要求カウンターも機能します。
今、これに対するより良いアプローチがあるかどうか疑問に思っています。これを可能にするすぐに使える機能があるでしょうか?どんなアイデアでも大歓迎です..