0

TreeView がバインドされているコレクションを作成するために使用するバックグラウンド ワーカーがあります。バックグラウンドワーカーの実行中に GUI に進行状況ダイアログを表示させます。バックグラウンド ワーカーの RunWorkerCompleted イベントで進行状況ダイアログを閉じます。これはすべてうまく機能し、期待どおりです。

問題は、進行状況ダイアログが閉じた後も TreeView の更新に時間がかかることが多いことです。TreeView に大量のデータが追加されることがあるため、更新に最大 10 秒ほどかかる場合があります。これは、ユーザーに不満と混乱を引き起こします。

  • TreeView の更新に時間がかかるのはなぜですか?
  • それをスピードアップする方法はありますか?
  • または、バックグラウンドワーカーが完了したときではなく、進行状況ダイアログを閉じることができるように、更新/再描画がいつ終了したかを知るには?

更新: 仮想化を有効にしました。

4

1 に答える 1

0

アプリケーションのパフォーマンスをプロファイリングしようとしましたか? これを行うのに役立つツールがいくつかあります。更新プロセスのためにどのメソッドが呼び出されているかを確認でき、更新プロセスでまだ実行中のコードを見つけることができる場合があります。

リンク http://www.red-gate.com/products/dotnet-development/ants-performance-profiler/

http://www.yourkit.com/

http://www.jetbrains.com/profiler/

于 2012-05-04T10:09:19.007 に答える