私はDataGridViewの更新を行うCPU時間の大部分を使用しているようなC#/ .Netアプリケーションを持っています。私は1.5秒ごとに手動でデータを更新し、変更されたデータのみを更新します。これは1.5秒ごとに約250件の更新となります。私は1.5秒をはるかに少ない数(おそらく0.5秒)に減らしたいと思います。できるだけプロファイリングして最適化しましたが、パフォーマンスは問題ありませんが、より速くしたいと思います。DataGridViewのパフォーマンス - ビデオカードによって異なりますか?
私の質問は、NVIDIA FX1800からNVIDIA FX3800へのビデオカードのアップグレードが大幅に高速化することですか?
私は実際に変更されたセルのPropertyChangedイベントを呼び出すだけです。これがあなたが "怠惰な読み込み"の意味であると思う/仮定しています。 DataGridViewの行数は約30行で約30行しかないため、膨大な量のデータが表示されません。この問題は、1秒あたりの更新数に関連しているようです。 –
それは少し変わる。私は最新情報を全部取り替えることに亀裂を入れるだろう。 900個のセルのうち150個のセルがかなり更新されています。更新を止めることができない限り、すべての変更を更新し、更新を開始します(これは恐らくより速いでしょう)。 900セルは瞬間的でなければなりません。スクロール位置を記録し、UIをリフレッシュしてスクロール位置を復元します。うまくいけば、これはシームレスになるでしょう。これで動かない場合は、別のコントロールを探す必要があります。これは少量のデータです。レイジー・ローディングは、何千ものレコードの10分の1を考えていて、コントロールに100個ほどしか置いていませんでした。 – TheJacobTaylor
申し訳ありませんが、私はあなたのことをよく分かりません - TheJacobTaylor - 上記のコメントを意味します。 「更新内容全体を交換する」とはどういう意味ですか?現在、Tickイベントハンドラが、変更されたセルのPropertyChangedイベントを発生させるTimerを持っています。このタイマーの間隔は1.5秒です。 また、「UIをリフレッシュする」と言うと、DataGridView.Refresh()を呼び出すことを意味しますか? –