-1

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

busyIndicator.IsBusy = true;    

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

ありがとう

4

1 に答える 1

2

避けるべきUIスレッドでWCFリクエストを行っているようです。BackgroundWorkerを使用してリクエストを行い、UI スレッドを解放してビジー インジケーターをアニメーション化してみてください。

于 2012-04-12T12:49:21.620 に答える