私はSilverlight 5で作業していますが、オートコンプリートのテキストボックスを作成しようとしています(私はアイテムを表示するためにradcomboboxでtelerik radwatermarktextboxコントロールを使用しています)非同期呼び出しからWCFサービスに返されます。silverlightオートコンプリートwith async wcf service
私が取り組んでいる問題は、テキストボックスにすばやく入力すると、フィルタリングされたアイテムのリストを取得するための複数の非同期呼び出しがキックオフされ(キーの押下ごとに1つずつ)、必ずしも同じ順序で実行されていた - 特にリストが戻ってきたとき。私は本当にすぐHPNを入力した場合
だから、次の呼び出しは
をキックオフ取得 Hと非同期呼び出しのパラメータとして(#1から231行を返します)パラメータとしてHPで 非同期呼び出しを(#2 - 私は時々、私は結果が他
後に#1を呼び出すために取得しています
私は、WCFサービスを変更カント)1行をrrturnます - パラメータ(#3としてHPNと 非同期呼び出しは)4行を返しますWCFサービスに同期メソッドを呼び出したり追加したりします。
Foxproには、入力バッファで待機しているキーがあるかどうかを示すCHRSAWという関数があります(http://msdn.microsoft.com/en-us/library/5skwdb75(v=vs.80).aspx )を使用して、コール#1および#2が呼び出されないようにすることができます。
これに対応する.NETの同等の機能がありますか?
ここで私はコードです
private void ICAO_TextChanged(object sender, TextChangedEventArgs e)
{
TextBox txt = (TextBox)sender;
if (txt.Text != String.Empty)
{
radBusyIndicator1.IsBusy = true;
_ServiceClient.FindAirportByPartialICAOAsync(txt.Text.Trim().ToUpper());
}
}
今のところ、WCFメソッドにオブジェクトのUserStateパラメータがあり、_lastAsyncCallという名前のフォームDateTimeプロパティをDateTime.Nowに設定し、それをユーザーの状態として渡してから完了したイベント、私はuserstate <_lastAsyncCall –