2012-04-12 9 views
-1

大きなデータバインディングを持つ複雑なUIを持つWPFアプリケーションがあります。私はWCFの非同期呼び出しを使ってデータをサーバーに送ります。サーバーからデータを取得するのに約4秒かかり、XAMLバインドには約6秒かかります。ユーザーの通知を得るために、データがクライアント側に到達するまで、正常に実行されるビジー状態のインジケータを与えました(進捗バーに進行状況が表示されます)。その結果をXAMLに割り当てると、ビジー状態のインジケータが応答しなくなります(メインウィンドウも同様)。それは単一のUIスレッドのためですか?ビジターインジケータをWCF非同期呼び出し内の別のスレッド(バックグラウンドワーカーなど)に表示することは可能ですか?または、このシナリオを処理するための他の良い方法はありますか?ビジー状態のインジケータがXAML読み込みで応答しない

busyIndicator.IsBusy = true;  

ServiceAgentInstance.GetAll((s1, e1) =>  
    {  
     ObservableCollection<Model> collection = e1.Result; 
     busyIndicator.IsBusy = false; 
    }); 

おかげ

+1

コードを投稿してください。 – ChrisF

+0

busyIndi​​cator.IsBusy = true; ServiceAgentInstance.GetAll((S1、E1)=> { のObservableCollection コレクション= e1.Result; busyIndi​​cator.IsBusy = FALSE;} )。 – Dennis

+0

コードを質問に編集する – ChrisF

答えて

2

あなたが避けるべきであるUIスレッド上でWCF要求を作っているように聞こえます。 BackgroundWorkerを使用してリクエストを行い、UIスレッドを解放してビジーインジケータをアニメートする必要があります。

関連する問題