私のSilverlightユーザーコントロールでは、アプリケーションからのイベントをリッスンしており、WCFサービスを呼び出して何らかのアクションを実行しています
void SelectedCustomerEvent(string customer)
{
//.......
_wcfserviceagent.GetCustomer(customer, callback);
}
void callback(ObservableCollection<CustomerType> customer)
{
//do some action
}
特定のシナリオでは、特定のアクションを実行すると、イベントが複数回発生します。問題は、コールバックが必ずしも WCF サービスの呼び出し順に呼び出されるとは限らないことです。
呼び出しとコールバックが常に順番に呼び出されるようにする方法はありますか?
理想的には、イベントに対してサービスとコールバックを呼び出し、その間に発生する他の呼び出しがキューに入れられるような方法で実行したいと考えています。もちろん、UI スレッドをブロックすることはできません。